/
logger_test.go
89 lines (63 loc) · 1.96 KB
/
logger_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
80
81
82
83
84
85
86
87
88
89
package golog
import (
"gomock.googlecode.com/hg/gomock"
"testing"
)
func TestOutput(t *testing.T) {
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
message := &LogMessage{Level: 1}
mockLogOuter := NewMockLogOuter(mockCtrl)
mockLogOuter.EXPECT().Output(message)
logger := NewLogger(mockLogOuter, 0, nil)
logger.Log(1, func() *LogMessage { return message })
}
func TestOutputSameLevel(t *testing.T) {
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
message := &LogMessage{}
mockLogOuter := NewMockLogOuter(mockCtrl)
mockLogOuter.EXPECT().Output(message)
logger := NewLogger(mockLogOuter, 0, nil)
logger.Log(0, func() *LogMessage { return message })
}
func TestNoOutput(t *testing.T) {
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
mockLogOuter := NewMockLogOuter(mockCtrl)
var called bool = false
logger := NewLogger(mockLogOuter, 1, nil)
// The message is logged below the filter level.
logger.Log(0, func() *LogMessage { called = true; return nil })
if called {
t.Error("Closure evaluated even though no output produced")
}
}
func TestFailFunc(t *testing.T) {
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
mockLogOuter := NewMockLogOuter(mockCtrl)
var called bool = false
// TODO(awreece) Our testing fail function violates spec by returning to
// normal control flow?
logger := NewLogger(mockLogOuter, 1, func() { called = true })
logger.FailNow()
if !called {
t.Error("Fail function not called!")
}
}
func TestSetMinLogLevel(t *testing.T) {
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
message := &LogMessage{}
mockLogOuter := NewMockLogOuter(mockCtrl)
mockLogOuter.EXPECT().Output(message)
logger := NewLogger(mockLogOuter, 0, nil)
logger.Log(0, func() *LogMessage { return message })
logger.SetMinLogLevel(1)
var called bool = false
logger.Log(0, func() *LogMessage { called = true; return nil })
if called {
t.Error("Message logged when log level wrong")
}
}