-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlog_test.go
79 lines (64 loc) · 1.42 KB
/
log_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package log
import (
"testing"
)
type MockTarget struct {
Level Level
Message string
}
func NewMockTarget() *MockTarget {
return &MockTarget{-1, ""}
}
func (w *MockTarget) Write(level Level, message string) {
w.Level = level
w.Message = message
}
func (w *MockTarget) Close() error {
return nil
}
func (w *MockTarget) Clear() {
w.Level = -1
w.Message = ""
}
func (w *MockTarget) NoWrite() bool {
nowrite := w.Level == -1 && w.Message == ""
w.Clear()
return nowrite
}
func (w *MockTarget) Written(level Level, message string) bool {
written := w.Level == level && w.Message == message
w.Clear()
return written
}
func TestPrint(t *testing.T) {
target := NewMockTarget()
logger, _ := New()
logger.SetTarget(target)
logger.Print(LevelDebug, "test")
if !target.NoWrite() {
t.Error("debug message written")
}
logger.Print(LevelInfo, "test")
if !target.Written(LevelInfo, "test") {
t.Error("info message not written")
}
logger.Print(LevelError, "test")
if !target.Written(LevelError, "test") {
t.Error("error message not written")
}
}
func TestLevel(t *testing.T) {
target := NewMockTarget()
logger, _ := New()
logger.SetTarget(target)
logger.SetLevel(LevelDebug)
logger.Print(LevelDebug, "test")
if !target.Written(LevelDebug, "test") {
t.Error("debug message not written")
}
logger.SetLevel(LevelError)
logger.Print(LevelDebug, "test")
if !target.NoWrite() {
t.Error("debug message written")
}
}