|
@@ -0,0 +1,145 @@
|
|
|
+package store
|
|
|
+
|
|
|
+import (
|
|
|
+ "os"
|
|
|
+ "testing"
|
|
|
+
|
|
|
+ "git.p78su.freemyip.com/svi/gostore/pkg/mock/mock_service"
|
|
|
+)
|
|
|
+
|
|
|
+type tester struct {
|
|
|
+ t *testing.T
|
|
|
+ serv *mock_service.MockService
|
|
|
+ store *Store
|
|
|
+}
|
|
|
+
|
|
|
+func TestStore(t *testing.T) {
|
|
|
+ fnClear := func() {
|
|
|
+ _ = os.RemoveAll("./store")
|
|
|
+ }
|
|
|
+ fnClear()
|
|
|
+ defer fnClear()
|
|
|
+ sf := &tester{
|
|
|
+ t: t,
|
|
|
+ }
|
|
|
+ sf.create()
|
|
|
+ sf.put()
|
|
|
+ sf.get()
|
|
|
+ sf.find()
|
|
|
+ sf.del()
|
|
|
+ sf.close()
|
|
|
+}
|
|
|
+
|
|
|
+// Закрытие хранилища
|
|
|
+func (sf *tester) close() {
|
|
|
+ sf.t.Log("close")
|
|
|
+ sf.serv.CancelApp()
|
|
|
+ sf.store.close()
|
|
|
+}
|
|
|
+
|
|
|
+// Удалет ключ из хранилища
|
|
|
+func (sf *tester) del() {
|
|
|
+ sf.t.Log("del")
|
|
|
+ err := sf.store.Del("k")
|
|
|
+ if err != nil {
|
|
|
+ sf.t.Fatalf("del(): err=%v", err)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Ищет ключи по префиксу
|
|
|
+func (sf *tester) find() {
|
|
|
+ sf.t.Log("find")
|
|
|
+ lstKey, err := sf.store.Find("key")
|
|
|
+ if err != nil {
|
|
|
+ sf.t.Fatalf("find(): err=%v", err)
|
|
|
+ }
|
|
|
+ if len(lstKey) != 1 {
|
|
|
+ sf.t.Fatalf("find(): len(lstKey)=%v", len(lstKey))
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// get -- проверяет получение значения из хранилища
|
|
|
+func (sf *tester) get() {
|
|
|
+ sf.t.Log("get")
|
|
|
+ sf.getBad1()
|
|
|
+ sf.getGood1()
|
|
|
+}
|
|
|
+
|
|
|
+func (sf *tester) getGood1() {
|
|
|
+ sf.t.Log("getGood1")
|
|
|
+ binVal, err := sf.store.Get("key")
|
|
|
+ if err != nil {
|
|
|
+ sf.t.Fatalf("getGood1(): err=%v", err)
|
|
|
+ }
|
|
|
+ if binVal == nil {
|
|
|
+ sf.t.Fatalf("getGood1(): binVal==nil")
|
|
|
+ }
|
|
|
+ if len(binVal) != 0 {
|
|
|
+ sf.t.Fatalf("getGood1(): len(binVal)=%v", len(binVal))
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// Нет такого ключа
|
|
|
+func (sf *tester) getBad1() {
|
|
|
+ sf.t.Log("getBad1")
|
|
|
+ _, err := sf.store.Get("ke")
|
|
|
+ if err == nil {
|
|
|
+ sf.t.Fatalf("getBad1(): err==nil")
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// put -- проверяет размещение ключа в хранилище
|
|
|
+func (sf *tester) put() {
|
|
|
+ sf.t.Log("put")
|
|
|
+ sf.putBad1()
|
|
|
+ sf.putGood1()
|
|
|
+}
|
|
|
+
|
|
|
+func (sf *tester) putGood1() {
|
|
|
+ sf.t.Log("putGood1")
|
|
|
+ err := sf.store.Put("key", nil)
|
|
|
+ if err != nil {
|
|
|
+ sf.t.Fatalf("putGood1(): err=%v", err)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// putBad1 -- нет ключа для хранилища
|
|
|
+func (sf *tester) putBad1() {
|
|
|
+ sf.t.Log("putBad1")
|
|
|
+ err := sf.store.Put("", nil)
|
|
|
+ if err == nil {
|
|
|
+ sf.t.Fatalf("putBad1(): err==nil")
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// create -- создает хранилище
|
|
|
+func (sf *tester) create() {
|
|
|
+ sf.t.Log("create")
|
|
|
+ sf.createBad1()
|
|
|
+ sf.createGood1()
|
|
|
+}
|
|
|
+
|
|
|
+func (sf *tester) createGood1() {
|
|
|
+ sf.t.Log("createGood1")
|
|
|
+ sf.serv = mock_service.NewMockService()
|
|
|
+ var err error
|
|
|
+ sf.store, err = NewStore(sf.serv)
|
|
|
+ if err != nil {
|
|
|
+ sf.t.Fatalf("createGood1(): in create IStoreDisk, err=\n\t%v", err)
|
|
|
+ }
|
|
|
+ if sf.store == nil {
|
|
|
+ sf.t.Fatalf("createGood1(): store==nil")
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// createBad1 -- нет объекта сервиса
|
|
|
+func (sf *tester) createBad1() {
|
|
|
+ sf.t.Log("createBad1")
|
|
|
+ store, err := NewStore(nil)
|
|
|
+ if err == nil {
|
|
|
+ sf.t.Fatalf("createBad1(): err==nil")
|
|
|
+ }
|
|
|
+ if store != nil {
|
|
|
+ sf.t.Fatalf("createBad1(): store!=nil")
|
|
|
+ }
|
|
|
+}
|