Просмотр исходного кода

SVI Мелкие правки; 93.3%

SVI 9 месяцев назад
Родитель
Сommit
7d9ca121b5

+ 14 - 8
cmd/gostore/main.go

@@ -5,6 +5,7 @@ import (
 	"log"
 
 	"git.p78su.freemyip.com/svi/gostore/internal/service"
+	"git.p78su.freemyip.com/svi/gostore/pkg/types"
 )
 
 var (
@@ -14,18 +15,23 @@ var (
 	Date = ""
 	// GoVersion -- версия компилятора
 	GoVersion = ""
+	serv      types.IService
+	err       error
 )
 
 func main() {
 	log.Printf("gostore/main():\n\tgo\t= %v\n\tvers\t= %v\n\tdate\t= %v\n", GoVersion, Version, Date)
-	serv, err := service.NewService()
-	if err != nil {
-		log.Printf("main(): in create IService, err=\n\t%v\n", err)
-		return
-	}
-	if err := serv.Run(); err != nil {
-		log.Printf("main(): in work IService, err=\n\t%v\n", err)
-		return
+	if serv == nil {
+		serv, err = service.NewService()
+		if err != nil {
+			log.Printf("main(): in create IService, err=\n\t%v\n", err)
+			return
+		}
 	}
+	run(serv)
 	log.Printf("main(): end\n")
 }
+
+func run(serv types.IService) {
+	serv.Run()
+}

+ 54 - 0
cmd/gostore/main_test.go

@@ -1 +1,55 @@
 package main
+
+import (
+	"os"
+	"testing"
+
+	"git.p78su.freemyip.com/svi/gostore/internal/service"
+)
+
+type tester struct {
+	t *testing.T
+}
+
+func TestMain(t *testing.T) {
+	fnClear := func() {
+		_ = os.RemoveAll("./store")
+	}
+	fnClear()
+	defer fnClear()
+	sf := &tester{
+		t: t,
+	}
+	sf.createBad1()
+	sf.createGood1()
+}
+
+func (sf *tester) createGood1() {
+	sf.t.Log("createGood1")
+	os.Unsetenv("HTTP_PORT")
+	os.Setenv("HTTP_PORT", "18080")
+	serv, err = service.NewService()
+	if err != nil {
+		sf.t.Fatalf("createGood1(): in create IStoreDisk, err=\n\t%v", err)
+	}
+	if serv == nil {
+		sf.t.Fatalf("createGood1(): serv==nil")
+	}
+	if http := serv.ServHttp(); http == nil {
+		sf.t.Fatalf("createGood1(): http==nil")
+	}
+	go main()
+	serv.CancelApp()
+	serv.Wg().Wait()
+}
+
+// Нет переменной окружения
+func (sf *tester) createBad1() {
+	sf.t.Log("createBad1")
+	main()
+	if serv != nil {
+		serv.CancelApp()
+		serv.Wg().Wait()
+	}
+	_ = os.RemoveAll("./store")
+}

+ 1 - 2
internal/service/service.go

@@ -74,7 +74,7 @@ func (sf *Service) Wg() *sync.WaitGroup {
 }
 
 // Run -- запускает сервис в работу
-func (sf *Service) Run() error {
+func (sf *Service) Run() {
 	go func() {
 		err := sf.servHttp.Run()
 		if err != nil {
@@ -82,5 +82,4 @@ func (sf *Service) Run() error {
 		}
 	}()
 	sf.wg.Wait()
-	return nil
 }

+ 1 - 3
internal/service/service_test.go

@@ -47,9 +47,7 @@ func (sf *tester) createGood1() {
 		sf.t.Fatalf("createGood1(): http==nil")
 	}
 	serv.CancelApp()
-	if err := serv.Run(); err != nil {
-		sf.t.Fatalf("createGood1(): err=\n\t%v", err)
-	}
+	serv.Run()
 }
 
 // Нет переменной окружения для порта веб-сервера

+ 1 - 3
pkg/mock/mock_service/mock_service.go

@@ -45,9 +45,7 @@ func (sf *MockService) ServHttp() types.IServHttp {
 }
 
 // Run -- запускает сервис в работу
-func (sf *MockService) Run() error {
-	return nil
-}
+func (sf *MockService) Run() {}
 
 // Ctx -- возвращает контекст приложения
 func (sf *MockService) Ctx() context.Context {

+ 2 - 3
pkg/mock/mock_service/mock_service_test.go

@@ -35,12 +35,11 @@ func (sf *tester) create() {
 	if serv := sf.serv.ServHttp(); serv != nil {
 		sf.t.Fatalf("create(): serv!=nil")
 	}
-	if err := sf.serv.Run(); err != nil {
-		sf.t.Fatalf("create(): err=\n\t%v", err)
-	}
+	sf.serv.Run()
 	if ctx := sf.serv.Ctx(); ctx == nil {
 		sf.t.Fatalf("create(): ctx==nil")
 	}
+	sf.serv.Run()
 	sf.serv.CancelApp()
 	sf.serv.Wg().Wait()
 }

+ 1 - 1
pkg/types/iservice.go

@@ -9,7 +9,7 @@ import (
 // IService -- объект сервиса
 type IService interface {
 	// Run -- запускает сервис в работу
-	Run() error
+	Run()
 	// Ctx -- возвращает контекст приложения
 	Ctx() context.Context
 	// CancelApp -- отменяет контекст приложения