github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/storage/badger/cluster_payloads_test.go (about) 1 package badger_test 2 3 import ( 4 "errors" 5 "testing" 6 7 "github.com/dgraph-io/badger/v2" 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 11 "github.com/onflow/flow-go/module/metrics" 12 "github.com/onflow/flow-go/storage" 13 "github.com/onflow/flow-go/utils/unittest" 14 15 badgerstorage "github.com/onflow/flow-go/storage/badger" 16 ) 17 18 func TestStoreRetrieveClusterPayload(t *testing.T) { 19 unittest.RunWithBadgerDB(t, func(db *badger.DB) { 20 metrics := metrics.NewNoopCollector() 21 store := badgerstorage.NewClusterPayloads(metrics, db) 22 23 blockID := unittest.IdentifierFixture() 24 expected := unittest.ClusterPayloadFixture(5) 25 26 // store payload 27 err := store.Store(blockID, expected) 28 require.NoError(t, err) 29 30 // fetch payload 31 payload, err := store.ByBlockID(blockID) 32 require.NoError(t, err) 33 require.Equal(t, expected, payload) 34 35 // storing again should error with key already exists 36 err = store.Store(blockID, expected) 37 require.True(t, errors.Is(err, storage.ErrAlreadyExists)) 38 }) 39 } 40 41 func TestClusterPayloadRetrieveWithoutStore(t *testing.T) { 42 unittest.RunWithBadgerDB(t, func(db *badger.DB) { 43 metrics := metrics.NewNoopCollector() 44 store := badgerstorage.NewClusterPayloads(metrics, db) 45 46 blockID := unittest.IdentifierFixture() 47 48 _, err := store.ByBlockID(blockID) 49 assert.True(t, errors.Is(err, storage.ErrNotFound)) 50 }) 51 }