gitlab.com/beacon-software/gadget@v0.0.0-20181217202115-54565ea1ed5e/storage/memory_test.go (about) 1 package storage 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 8 "gitlab.com/beacon-software/gadget/generator" 9 ) 10 11 type Foo struct { 12 Bar string 13 Baz int 14 } 15 16 func TestNewMemoryStorage(t *testing.T) { 17 assert := assert.New(t) 18 storage := NewMemoryStorage() 19 assert.NotNil(storage) 20 } 21 22 func Test_memoryProvider_ReadWriteExistsDelete(t *testing.T) { 23 assert := assert.New(t) 24 storage := NewMemoryStorage() 25 expected := &Foo{Bar: "awef", Baz: 42} 26 actual := &Foo{} 27 key := "key" 28 assert.EqualError(storage.Read("not the key", actual), NoEntryForKey) 29 assert.NoError(storage.Write(key, expected)) 30 assert.True(storage.Exists(key)) 31 assert.NoError(storage.Read(key, actual)) 32 assert.Equal(expected, actual) 33 assert.NoError(storage.Delete(key)) 34 assert.EqualError(storage.Read(key, actual), NoEntryForKey) 35 assert.False(storage.Exists(key)) 36 } 37 38 func Test_memoryProvider_Shard(t *testing.T) { 39 assert := assert.New(t) 40 storage := NewMemoryStorage() 41 pkey := generator.String(20) 42 pvalue := generator.String(20) 43 skey := generator.String(20) 44 svalue := generator.String(20) 45 assert.NoError(storage.Write(pkey, pvalue)) 46 shardName := generator.String(20) 47 shard, err := storage.Shard(shardName) 48 assert.NoError(err) 49 assert.False(shard.Exists(pkey)) 50 assert.NoError(shard.Write(skey, svalue)) 51 assert.False(storage.Exists(skey)) 52 shard, err = storage.Shard(shardName) 53 assert.NoError(err) 54 assert.False(shard.Exists(pkey)) 55 assert.True(shard.Exists(skey)) 56 }