package log_msg import ( "strings" "testing" ) type tester struct { t *testing.T } func TestLogMsg(t *testing.T) { sf := &tester{ t: t, } sf.new() } // Создаёт сообщение. func (sf *tester) new() { sf.t.Log("new") sf.newBad1() sf.newGood1() } func (sf *tester) newGood1() { sf.t.Log("newGood1") _ = NewLogMsg(-3, "test msg -3") _ = NewLogMsg(-2, "test msg -2") _ = NewLogMsg(-1, "test msg -1") msg := NewLogMsg(0, "test msg 0") if msg := msg.Msg(); msg.Get() != "test msg 0" { sf.t.Fatalf("newGood1(): msg(%v)!='test msg 0'", msg) } if lvl := msg.Level(); lvl.Get() != "ERRO" { sf.t.Fatalf("newGood1(): lvl(%v)!='ERRO'", lvl) } if createAt := msg.CreateAt(); createAt.Get() == "" { sf.t.Fatalf("newGood1(): createAt is empty") } if str := msg.String(); !strings.Contains(str, "ERRO 2") { sf.t.Fatalf("newGood1(): str(%v)!=`ERRO 2`", str) } } // Неправильный уровень сообщения. func (sf *tester) newBad1() { sf.t.Log("newBad1") defer func() { if _panic := recover(); _panic == nil { sf.t.Fatalf("newBad1(): panic==nil") } }() _ = NewLogMsg(-10, "test msg") }