-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger_test.go
117 lines (109 loc) · 2.78 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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package logger
import (
"github.com/stretchr/testify/assert"
"os"
"testing"
)
func Test_logger_test_Before(t *testing.T) {
defaultTiming = mockedTiming{}
}
type formatMessageTestCase struct {
levelId string
message string
args []interface{}
expected string
}
var formatMessageTestCases = []formatMessageTestCase{
// Unknown level
formatMessageTestCase{
levelId: "dummy",
message: "dummy",
expected: "03:04:05 [ERROR] Unknown logging level: dummy\n",
},
// [INFO] message
formatMessageTestCase{
levelId: "info",
message: "dummy",
expected: "03:04:05 [INFO] dummy\n",
},
// [WARN] message
formatMessageTestCase{
levelId: "warn",
message: "dummy",
expected: "03:04:05 [WARN] dummy\n",
},
// [ERROR] message
formatMessageTestCase{
levelId: "error",
message: "dummy",
expected: "03:04:05 [ERROR] dummy\n",
},
// [FATAL] message
formatMessageTestCase{
levelId: "fatal",
message: "dummy",
expected: "03:04:05 [FATAL] dummy\n",
},
// [INFO] message with arguments
formatMessageTestCase{
levelId: "info",
message: "dummy %v",
args: []interface{}{"argument1"},
expected: "03:04:05 [INFO] dummy argument1\n",
},
// [WARN] message with arguments
formatMessageTestCase{
levelId: "warn",
message: "dummy %v",
args: []interface{}{"argument1"},
expected: "03:04:05 [WARN] dummy argument1\n",
},
// [ERROR] message with arguments
formatMessageTestCase{
levelId: "error",
message: "dummy %v",
args: []interface{}{"argument1"},
expected: "03:04:05 [ERROR] dummy argument1\n",
},
// [FATAL] message with arguments
formatMessageTestCase{
levelId: "fatal",
message: "dummy %v",
args: []interface{}{"argument1"},
expected: "03:04:05 [FATAL] dummy argument1\n",
},
// [DEBUG] message with arguments
formatMessageTestCase{
levelId: "debug",
message: "dummy %v",
args: []interface{}{"argument1"},
expected: "03:04:05 [DEBUG] dummy argument1\n",
},
// [TRACE] message with arguments
formatMessageTestCase{
levelId: "trace",
message: "dummy %v",
args: []interface{}{"argument1"},
expected: "03:04:05 [TRACE] dummy argument1\n",
},
}
func Test_formatMessage_ShouldFormatMessageCorrectly(t *testing.T) {
l := New()
for _, testCase := range formatMessageTestCases {
actual := l.formatMessage(testCase.levelId, testCase.message, testCase.args...)
assert.Equal(t, testCase.expected, actual)
}
}
func Test_getWriter_ShouldGetConsoleWriterById(t *testing.T) {
logger := New()
writer := logger.getWriter("console")
assert.Equal(t, os.Stdout, writer)
}
func Test_getWriter_ShouldGetDefaultWriterForUnknownId(t *testing.T) {
logger := New()
writer := logger.getWriter("dummy")
assert.Equal(t, os.Stdout, writer)
}
func Test_logger_test_After(t *testing.T) {
defaultTiming = defTimingOriginal
}