فهرست منبع

SVI Исправления,тесты, документация;85.0%

SVI 10 ماه پیش
والد
کامیت
06d969a08a
4فایلهای تغییر یافته به همراه80 افزوده شده و 79 حذف شده
  1. 1 1
      .env
  2. 1 1
      doc/anonym.md
  3. 2 77
      internal/serv_http/serv_http.go
  4. 76 0
      internal/serv_http/serv_http_test.go

+ 1 - 1
.env

@@ -1 +1 @@
-STORE_HTTP_PORT="25000"
+HTTP_PORT="25000"

+ 1 - 1
doc/anonym.md

@@ -22,5 +22,5 @@
 ## Переменные окружения
 
 ```bash
-export STORE_HTTP_PORT="25000"
+export HTTP_PORT="25000"
 ```

+ 2 - 77
internal/serv_http/serv_http.go

@@ -30,9 +30,9 @@ func NewServHttp(serv types.IService) (*ServHttp, error) {
 	if serv == nil {
 		return nil, fmt.Errorf("NewServHttp(): IService==nil")
 	}
-	port := os.Getenv("STORE_HTTP_PORT")
+	port := os.Getenv("HTTP_PORT")
 	if port == "" {
-		return nil, fmt.Errorf("NewServHttp(): env STORE_HTTP_PORT not set")
+		return nil, fmt.Errorf("NewServHttp(): env HTTP_PORT not set")
 	}
 	engineTmpl := html.New("./static/tmpl", ".tmpl.html")
 	appConf := fiber.Config{
@@ -123,11 +123,6 @@ func NewServHttp(serv types.IService) (*ServHttp, error) {
 		return nil, err
 	}
 	sf.fiberApp.Get("/", sf.get)
-	sf.fiberApp.Post("/put/:login/:pass/:key", sf.postLogin, sf.postPut)
-	sf.fiberApp.Post("/get/:login/:pass/:key", sf.postLogin, sf.postGet)
-	sf.fiberApp.Post("/del/:login/:pass/:key", sf.postLogin, sf.postDel)
-	sf.fiberApp.Post("/find/:login/:pass/:key", sf.postLogin, sf.postFind)
-
 	return sf, nil
 }
 
@@ -146,59 +141,6 @@ func (sf *ServHttp) FiberApp() *fiber.App {
 	return sf.fiberApp
 }
 
-type ListValRequest struct {
-	Val_ []string `json:"val" form:"val"`
-}
-
-// postFind -- возвращает список ключей по префиксу
-func (sf *ServHttp) postFind(ctx *fiber.Ctx) error {
-	key := ctx.Params("key")
-	lstKey, err := sf.store.Find(key)
-	if err != nil {
-		return fiber.NewError(40, "ServHttp.postFind(): in get keys by prefix from db")
-	}
-	return ctx.JSON(&ListValRequest{
-		Val_: lstKey,
-	})
-}
-
-type ValRequest struct {
-	Val_ []byte `json:"val" form:"val"`
-}
-
-// postDel -- удаляет содержимое ключа
-func (sf *ServHttp) postDel(ctx *fiber.Ctx) error {
-	key := ctx.Params("key")
-	sf.store.Del(key)
-	return nil
-}
-
-// postGet -- возвращает содержимое ключа
-func (sf *ServHttp) postGet(ctx *fiber.Ctx) error {
-	key := ctx.Params("key")
-	val, err := sf.store.Get(key)
-	if err != nil {
-		return fiber.NewError(30, "ServHttp.postGet(): in get val from db")
-	}
-	return ctx.JSON(&ValRequest{
-		Val_: val,
-	})
-}
-
-// postPut -- сохраняет содержимое ключа
-func (sf *ServHttp) postPut(ctx *fiber.Ctx) error {
-	key := ctx.Params("key")
-	req := &ValRequest{}
-	if err := ctx.BodyParser(req); err != nil {
-		return fiber.NewError(20, "ServHttp.postPut(): bad FORM")
-	}
-	err := sf.store.Put(key, req.Val_)
-	if err != nil {
-		return fiber.NewError(21, "ServHttp.postPut(): in put val on db")
-	}
-	return nil
-}
-
 // Run -- запускает веб-сервер в работу
 func (sf *ServHttp) Run() error {
 	defer sf.serv.CancelApp()
@@ -208,20 +150,3 @@ func (sf *ServHttp) Run() error {
 	}
 	return nil
 }
-
-// Проверяет логин/пароль в запросе
-func (sf *ServHttp) postLogin(ctx *fiber.Ctx) error {
-	// login := ctx.Params("login")
-	// if login != sf.login {
-	// 	return fiber.NewError(1, "ServHttp.postLogin(): bad login/pass")
-	// }
-	// pass := ctx.Params("pass")
-	// if pass != sf.pass {
-	// 	return fiber.NewError(2, "ServHttp.postLogin(): bad login/pass")
-	// }
-	key := ctx.Params("key")
-	if key == "" {
-		return fiber.NewError(3, "ServHttp.postLogin(): key is empty")
-	}
-	return ctx.Next()
-}

+ 76 - 0
internal/serv_http/serv_http_test.go

@@ -1 +1,77 @@
 package serv_http
+
+import (
+	"os"
+	"testing"
+	"time"
+
+	"git.p78su.freemyip.com/svi/gostore/pkg/mock/mock_service"
+)
+
+type tester struct {
+	t    *testing.T
+	serv *mock_service.MockService
+	web  *ServHttp
+}
+
+func TestServHttp(t *testing.T) {
+	sf := &tester{
+		t: t,
+	}
+	sf.create()
+}
+
+// Создание нового веб-сервера
+func (sf *tester) create() {
+	sf.t.Log("create")
+	sf.createBad1()
+	sf.createBad2()
+	sf.createGood1()
+}
+
+func (sf *tester) createGood1() {
+	sf.t.Log("createGood1")
+	var err error
+	os.Setenv("HTTP_PORT", "8080")
+	sf.web, err = NewServHttp(sf.serv)
+	if err != nil {
+		sf.t.Fatalf("createGood1(): err=\n\t%v", err)
+	}
+	if sf.web == nil {
+		sf.t.Fatalf("createGood1(): web==nil")
+	}
+	go func() {
+		_ = sf.web.Run()
+	}()
+	sf.serv.CancelApp()
+	time.Sleep(50 * time.Millisecond)
+
+}
+
+// Нет порта для работы сервера
+func (sf *tester) createBad2() {
+	sf.t.Log("createBad2")
+	sf.serv = mock_service.NewMockService()
+	var err error
+	sf.web, err = NewServHttp(sf.serv)
+	if err == nil {
+		sf.t.Fatalf("createBad2(): err==nil")
+	}
+	if sf.web != nil {
+		sf.t.Fatalf("createBad2(): web!=nil")
+	}
+}
+
+// Нет объекта сервиса
+func (sf *tester) createBad1() {
+	sf.t.Log("createBad1")
+	sf.serv = mock_service.NewMockService()
+	var err error
+	sf.web, err = NewServHttp(nil)
+	if err == nil {
+		sf.t.Fatalf("createBad1(): err==nil")
+	}
+	if sf.web != nil {
+		sf.t.Fatalf("createBad1(): web!=nil")
+	}
+}