| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- package kserv_http
- import (
- "os"
- "testing"
- . "gitp78su.ipnodns.ru/svi/kern/v3/kc/helpers"
- "gitp78su.ipnodns.ru/svi/kern/v3/krn/kctx"
- . "gitp78su.ipnodns.ru/svi/kern/v3/krn/ktypes"
- "gitp78su.ipnodns.ru/svi/kern/v3/mock/mock_env"
- )
- const (
- baseUrl = "http://localhost:18400/"
- )
- type tester struct {
- t *testing.T
- ctx IKernelCtx
- wg IKernelWg
- me *mock_env.MockEnv
- }
- func TestKernelServHttp(t *testing.T) {
- ctx := kctx.GetKernelCtx()
- sf := &tester{
- t: t,
- ctx: ctx,
- wg: ctx.Wg(),
- }
- sf.new()
- sf.close()
- }
- // Закрытие HTTP-сервера
- func (sf *tester) close() {
- sf.t.Log("close")
- sf.ctx.Cancel()
- sf.wg.Wait()
- kernServHttp.close()
- if kernServHttp.IsWork() {
- sf.t.Fatalf("close(): isWork==true")
- }
- kernServHttp.Run()
- chErr := make(chan string, 2)
- chErr <- "test err"
- close(chErr)
- kernServHttp.fnChErr(chErr)
- }
- // Создание сервера HTTP
- func (sf *tester) new() {
- sf.t.Log("new()")
- sf.newBad1()
- sf.newBad2()
- sf.newGood1()
- sf.newBad3()
- }
- // Повторный запуск сервера на том же порту
- func (sf *tester) newBad3() {
- sf.t.Log("newBad3()")
- serv := GetKernelServHttp()
- go serv.Run()
- count := 0
- for count < 20 {
- SleepMs()
- count++
- }
- }
- func (sf *tester) newGood1() {
- sf.t.Log("newGood1()")
- defer func() {
- if _panic := recover(); _panic != nil {
- sf.t.Fatalf("newGood1(): panic=%v", _panic)
- }
- }()
- sf.me = mock_env.MakeEnv()
- _ = os.Unsetenv("LOCAL_HTTP_URL")
- os.Setenv("LOCAL_HTTP_URL", baseUrl)
- sf.ctx.Set("monolitName", "test_monolit", "comment")
- serv := GetKernelServHttp().(*kServHttp)
- if serv != kernServHttp {
- sf.t.Fatalf("newGood1(): bad IKernelServHttp")
- }
- if webFiber := serv.Fiber(); webFiber != kernServHttp.fiberApp {
- sf.t.Fatalf("newGood1(): webFiber==serv.appFiber")
- }
- if log := serv.Log(); log == nil {
- sf.t.Fatalf("newGood1(): log==nil")
- }
- // go serv.Run()
- // count := 0
- // for count < 50 {
- // SleepMs()
- // count++
- // }
- serv.Run()
- }
- // Не указана SERVER_HTTP_PORT
- func (sf *tester) newBad2() {
- sf.t.Log("newBad2()")
- defer func() {
- if _panic := recover(); _panic == nil {
- sf.t.Fatalf("newBad2(): panic==nil")
- }
- }()
- _ = GetKernelServHttp()
- }
- // Нет контекста ядра
- func (sf *tester) newBad1() {
- sf.t.Log("newBad1()")
- defer func() {
- if _panic := recover(); _panic == nil {
- sf.t.Fatalf("newBad1(): panic==nil")
- }
- }()
- _ = GetKernelServHttp()
- }
|