forked from adamlaska/machine
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfmt_machine_logger_test.go
More file actions
97 lines (76 loc) · 2.37 KB
/
fmt_machine_logger_test.go
File metadata and controls
97 lines (76 loc) · 2.37 KB
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
package log
import (
"bufio"
"io"
"io/ioutil"
"testing"
"github.com/stretchr/testify/assert"
)
func captureOutput(testLogger MachineLogger, lambda func()) string {
pipeReader, pipeWriter := io.Pipe()
scanner := bufio.NewScanner(pipeReader)
testLogger.SetOutWriter(pipeWriter)
go lambda()
scanner.Scan()
return scanner.Text()
}
func captureError(testLogger MachineLogger, lambda func()) string {
pipeReader, pipeWriter := io.Pipe()
scanner := bufio.NewScanner(pipeReader)
testLogger.SetErrWriter(pipeWriter)
go lambda()
scanner.Scan()
return scanner.Text()
}
func TestSetDebugToTrue(t *testing.T) {
testLogger := NewFmtMachineLogger().(*FmtMachineLogger)
testLogger.SetDebug(true)
assert.Equal(t, true, testLogger.debug)
}
func TestSetDebugToFalse(t *testing.T) {
testLogger := NewFmtMachineLogger().(*FmtMachineLogger)
testLogger.SetDebug(true)
testLogger.SetDebug(false)
assert.Equal(t, false, testLogger.debug)
}
func TestSetOut(t *testing.T) {
testLogger := NewFmtMachineLogger().(*FmtMachineLogger)
testLogger.SetOutWriter(ioutil.Discard)
assert.Equal(t, ioutil.Discard, testLogger.outWriter)
}
func TestSetErr(t *testing.T) {
testLogger := NewFmtMachineLogger().(*FmtMachineLogger)
testLogger.SetErrWriter(ioutil.Discard)
assert.Equal(t, ioutil.Discard, testLogger.errWriter)
}
func TestDebug(t *testing.T) {
testLogger := NewFmtMachineLogger()
testLogger.SetDebug(true)
result := captureError(testLogger, func() { testLogger.Debug("debug") })
assert.Equal(t, result, "debug")
}
func TestInfo(t *testing.T) {
testLogger := NewFmtMachineLogger()
result := captureOutput(testLogger, func() { testLogger.Info("info") })
assert.Equal(t, result, "info")
}
func TestWarn(t *testing.T) {
testLogger := NewFmtMachineLogger()
result := captureOutput(testLogger, func() { testLogger.Warn("warn") })
assert.Equal(t, result, "warn")
}
func TestError(t *testing.T) {
testLogger := NewFmtMachineLogger()
result := captureError(testLogger, func() { testLogger.Error("error") })
assert.Equal(t, result, "error")
}
func TestEntriesAreCollected(t *testing.T) {
testLogger := NewFmtMachineLogger()
testLogger.Debug("debug")
testLogger.Info("info")
testLogger.Error("error")
assert.Equal(t, 3, len(testLogger.History()))
assert.Equal(t, "debug", testLogger.History()[0])
assert.Equal(t, "info", testLogger.History()[1])
assert.Equal(t, "error", testLogger.History()[2])
}