prysm-pulse/beacon-chain/cache/attestation_data_test.go
Preston Van Loon 7c47db0015 add attestation data req cache (#2542)
* add attestation data req cache

* add tests

* godocs

* fix cache size gauge

* lint

* fix tests

* gazelle

* add more comments
2019-05-08 19:27:29 -05:00

55 lines
953 B
Go

package cache_test
import (
"context"
"testing"
"github.com/gogo/protobuf/proto"
"github.com/prysmaticlabs/prysm/beacon-chain/cache"
pb "github.com/prysmaticlabs/prysm/proto/beacon/rpc/v1"
)
func TestAttestationCache_RoundTrip(t *testing.T) {
ctx := context.Background()
c := cache.NewAttestationCache()
req := &pb.AttestationDataRequest{
Shard: 0,
Slot: 1,
}
response, err := c.Get(ctx, req)
if err != nil {
t.Error(err)
}
if response != nil {
t.Errorf("Empty cache returned an object: %v", response)
}
if err := c.MarkInProgress(req); err != nil {
t.Error(err)
}
res := &pb.AttestationDataResponse{
HeadSlot: 5,
}
if err = c.Put(ctx, req, res); err != nil {
t.Error(err)
}
if err := c.MarkNotInProgress(req); err != nil {
t.Error(err)
}
response, err = c.Get(ctx, req)
if err != nil {
t.Error(err)
}
if !proto.Equal(response, res) {
t.Error("Expected equal protos to return from cache")
}
}