Browse Source

SVI Добавление тестов

SVI 10 tháng trước cách đây
mục cha
commit
8a1f9f63df

+ 6 - 1
internal/serv_http/router_anonym/anonym_del/anonym_del.go

@@ -74,6 +74,11 @@ func (sf *AnonymDel) post(ctx *fiber.Ctx) error {
 			"res": "AnonymDel.post(): ключ не может быть пустым",
 		})
 	}
-	sf.store.Del("anon/" + req.Key_)
+	err := sf.store.Del("anon/" + req.Key_)
+	if err != nil {
+		return ctx.Render("anonym_del", fiber.Map{
+			"res": fmt.Sprintf("AnonymDel.post(): при удалении из хранилища, err=%v", err),
+		})
+	}
 	return ctx.SendString(fmt.Sprintf("AnonymDel.post(): ключ %q удален из хранилища", req.Key_))
 }

+ 83 - 0
internal/serv_http/router_anonym/anonym_del/anonym_del_test.go

@@ -0,0 +1,83 @@
+package anonym_del
+
+import (
+	"os"
+	"testing"
+
+	"github.com/gofiber/fiber/v2"
+
+	"git.p78su.freemyip.com/svi/gostore/pkg/mock/mock_service"
+	"git.p78su.freemyip.com/svi/gostore/pkg/mock/mock_web"
+	"git.p78su.freemyip.com/svi/gostore/pkg/types"
+)
+
+type tester struct {
+	t      *testing.T
+	serv   types.IService
+	web    types.IServHttp
+	router fiber.Router
+}
+
+func TestAnonymDel(t *testing.T) {
+	fnClear := func() {
+		_ = os.RemoveAll("./store")
+	}
+	fnClear()
+	defer fnClear()
+	sf := &tester{
+		t: t,
+	}
+	sf.create()
+	// sf.del()
+	// sf.close()
+}
+
+// Создание удалятора анонимных ключей
+func (sf *tester) create() {
+	sf.t.Log("create")
+	sf.createBad1()
+	sf.createBad2()
+	sf.createGood1()
+}
+
+func (sf *tester) createGood1() {
+	sf.t.Log("createGood1")
+	sf.router = sf.web.FiberApp().Group("/anonym")
+	store, err := NewAnonymDel(sf.web, sf.router)
+	if err != nil {
+		sf.t.Fatalf("createGood1(): err=\n\t%v", err)
+	}
+	if store == nil {
+		sf.t.Fatalf("createGood1(): store==nil")
+	}
+}
+
+// Нет анонимного роутера
+func (sf *tester) createBad2() {
+	sf.t.Log("createBad2")
+	var err error
+	sf.serv = mock_service.NewMockService()
+	sf.web, err = mock_web.NewMockWeb(sf.serv)
+	if err != nil {
+		sf.t.Fatalf("createBad2(): err=\n\t%v", err)
+	}
+	anonDel, err := NewAnonymDel(sf.web, nil)
+	if err == nil {
+		sf.t.Fatalf("createBad2(): err==nil")
+	}
+	if anonDel != nil {
+		sf.t.Fatalf("createBad2(): anonDel!=nil")
+	}
+}
+
+// Нет объекта веб-сервера
+func (sf *tester) createBad1() {
+	sf.t.Log("createBad1")
+	store, err := NewAnonymDel(nil, nil)
+	if err == nil {
+		sf.t.Fatalf("createBad1(): err==nil")
+	}
+	if store != nil {
+		sf.t.Fatalf("createBad1(): store!=nil")
+	}
+}

+ 43 - 0
pkg/mock/mock_web/mock_web.go

@@ -0,0 +1,43 @@
+// package mock_web -- мок веб-сервер для тестов
+package mock_web
+
+import (
+	"fmt"
+
+	"github.com/gofiber/fiber/v2"
+
+	"git.p78su.freemyip.com/svi/gostore/pkg/types"
+)
+
+// MockWeb -- мок веб-сервер для тестов
+type MockWeb struct {
+	serv     types.IService
+	fiberApp *fiber.App
+}
+
+// NewMockWeb -- возвращает мок веб-сервер для тестов
+func NewMockWeb(serv types.IService) (*MockWeb, error) {
+	if serv == nil {
+		return nil, fmt.Errorf("NewMockWeb(): serv==nil")
+	}
+	sf := &MockWeb{
+		serv:     serv,
+		fiberApp: fiber.New(),
+	}
+	return sf, nil
+}
+
+// Service -- возвращает сервис
+func (sf *MockWeb) Service() types.IService {
+	return sf.serv
+}
+
+// Run -- запускает веб-сервер в работу
+func (sf *MockWeb) Run() error {
+	return nil
+}
+
+// FiberApp -- возвращает приложение fiber
+func (sf *MockWeb) FiberApp() *fiber.App {
+	return sf.fiberApp
+}