123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- 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()
- if err := sf.store.Del("key"); err == nil {
- sf.t.Fatalf("close(): err==nil")
- }
- lstKey, err := sf.store.Find("key")
- if err == nil {
- sf.t.Fatalf("close(): err==nil")
- }
- if lstKey != nil {
- sf.t.Fatalf("close(): lstKey!=nil")
- }
- if err := sf.store.Put("key2", []byte("val")); err == nil {
- sf.t.Fatalf("close(): err==nil")
- }
- binVal, err := sf.store.Get("key2")
- if err == nil {
- sf.t.Fatalf("close(): err==nil")
- }
- if binVal != nil {
- sf.t.Fatalf("close(): binVal!=nil")
- }
- }
- // Удалет ключ из хранилища
- 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.createBad2()
- sf.createGood1()
- }
- func (sf *tester) createGood1() {
- sf.t.Log("createGood1")
- store, err := NewStore(sf.serv)
- if err != nil {
- sf.t.Fatalf("createGood1(): in create IStoreDisk, err=\n\t%v", err)
- }
- sf.store = store.(*Store)
- if sf.store == nil {
- sf.t.Fatalf("createGood1(): store==nil")
- }
- }
- // Испорчена переменная модуля
- func (sf *tester) createBad2() {
- sf.t.Log("createBad2")
- sf.serv = mock_service.NewMockService()
- IsBad_ = true
- store, err := NewStore(sf.serv)
- if err == nil {
- sf.t.Fatalf("createBad2(): err==nil")
- }
- if store != nil {
- sf.t.Fatalf("createBad2(): store!=nil")
- }
- IsBad_ = false
- }
- // 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")
- }
- }
|