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 sf *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 (sf *tester) writeBad1() { if err := sf.sf.write([]byte{}); err == nil { sf.t.Errorf("write(): err==nil") } } // закрытие логгера func (sf *tester) close() { sf.t.Logf("=close=") sf.kern.CancelApp() sf.kern.Wg().Wait() sf.sf.Write("") } // отмена работы func (sf *tester) cancel() { sf.t.Logf("=cancal=") sf.createGood1() sf.kern.CancelApp() sf.kern.Wg().Wait() } // запись сообщения func (sf *tester) write() { sf.t.Logf("=write=") sf.sf.Write("test msg") time.Sleep(time.Millisecond * 150) } // Создание файлового логгера func (sf *tester) create() { sf.t.Logf("=create=") sf.createBad1() sf.createBad2() sf.createGood1() } func (sf *tester) createGood1() { sf.t.Logf("=createGood1=") sf.sf, sf.err = NewSlogFile(sf.kern, "test") if sf.err != nil { sf.t.Errorf("createGood1(): err=%v", sf.err) } if sf.sf == nil { sf.t.Errorf("createGood1(): SlogFile == nil") } } // Нет верси сборки func (sf *tester) createBad2() { sf.t.Logf("=createBad2=") sf.kern = mockkernel.NewMockKernel() sf.sf, sf.err = NewSlogFile(sf.kern, "") if sf.err == nil { sf.t.Errorf("createBad2(): err == nil") } if sf.sf != nil { sf.t.Errorf("createBad2(): SlogFile != nil") } } // Нет объекта ядра func (sf *tester) createBad1() { sf.t.Logf("=createBad1=") sf.sf, sf.err = NewSlogFile(nil, "test") if sf.err == nil { sf.t.Errorf("createBad1(): err == nil") } if sf.sf != nil { sf.t.Errorf("createBad1(): SlogFile != nil") } }