package slog_file import ( "os" "testing" "time" "wartank/pkg/mock/mockenv" "wartank/pkg/mock/mockkernel" ) /* Тест для интерфейса логгера в файл */ type tester struct { t *testing.T err error me *mockenv.MockEnv kern *mockkernel.MockKernel сам *SlogFile } func TestSlogFile(t *testing.T) { _ = os.RemoveAll("./log") test := &tester{ t: t, me: mockenv.NewMockEnv(), } test.create() test.write() test.close() test.writeBad1() test.cancel() _ = os.RemoveAll("./log") } // файл уже закрыт func (сам *tester) writeBad1() { if err := сам.сам.write([]byte{}); err == nil { сам.t.Errorf("write(): err==nil") } } // закрытие логгера func (сам *tester) close() { сам.t.Logf("=close=") сам.kern.CancelApp() сам.kern.Wg().Wait() сам.сам.Write("") } // отмена работы func (сам *tester) cancel() { сам.t.Logf("=cancal=") сам.createGood1() сам.kern.CancelApp() сам.kern.Wg().Wait() } // запись сообщения func (сам *tester) write() { сам.t.Logf("=write=") сам.сам.Write("test msg") time.Sleep(time.Millisecond * 150) } // Создание файлового логгера func (сам *tester) create() { сам.t.Logf("=create=") сам.createBad1() сам.createBad2() сам.createGood1() } func (сам *tester) createGood1() { сам.t.Logf("=createGood1=") сам.сам, сам.err = NewSlogFile(сам.kern, "test") if сам.err != nil { сам.t.Errorf("createGood1(): err=%v", сам.err) } if сам.сам == nil { сам.t.Errorf("createGood1(): SlogFile == nil") } } // Нет верси сборки func (сам *tester) createBad2() { сам.t.Logf("=createBad2=") сам.kern = mockkernel.NewMockKernel() сам.сам, сам.err = NewSlogFile(сам.kern, "") if сам.err == nil { сам.t.Errorf("createBad2(): err == nil") } if сам.сам != nil { сам.t.Errorf("createBad2(): SlogFile != nil") } } // Нет объекта ядра func (сам *tester) createBad1() { сам.t.Logf("=createBad1=") сам.сам, сам.err = NewSlogFile(nil, "test") if сам.err == nil { сам.t.Errorf("createBad1(): err == nil") } if сам.сам != nil { сам.t.Errorf("createBad1(): SlogFile != nil") } }