forked from TrueCloudLab/neoneo-go
264dfef370
add close function to storage interface add common defer function call which will close db connection remove context as soon as it's not needed anymore updated unit tests
61 lines
1,013 B
Go
61 lines
1,013 B
Go
package storage
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGetPut(t *testing.T) {
|
|
var (
|
|
s = NewMemoryStore()
|
|
key = []byte("sparse")
|
|
value = []byte("rocks")
|
|
)
|
|
|
|
if err := s.Put(key, value); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
newVal, err := s.Get(key)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
assert.Equal(t, value, newVal)
|
|
require.NoError(t, s.Close())
|
|
}
|
|
|
|
func TestKeyNotExist(t *testing.T) {
|
|
var (
|
|
s = NewMemoryStore()
|
|
key = []byte("sparse")
|
|
)
|
|
|
|
_, err := s.Get(key)
|
|
assert.NotNil(t, err)
|
|
assert.Equal(t, err.Error(), "key not found")
|
|
require.NoError(t, s.Close())
|
|
}
|
|
|
|
func TestPutBatch(t *testing.T) {
|
|
var (
|
|
s = NewMemoryStore()
|
|
key = []byte("sparse")
|
|
value = []byte("rocks")
|
|
batch = s.Batch()
|
|
)
|
|
|
|
batch.Put(key, value)
|
|
|
|
if err := s.PutBatch(batch); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
newVal, err := s.Get(key)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
assert.Equal(t, value, newVal)
|
|
require.NoError(t, s.Close())
|
|
}
|