-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathgobrick_test.go
98 lines (87 loc) · 2.55 KB
/
gobrick_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
package gobrick
import (
"context"
"github.com/dell/gobrick/internal/logger"
"github.com/dell/gobrick/internal/mockhelper"
"github.com/dell/gobrick/internal/tracer"
"github.com/dell/gobrick/pkg/scsi"
"fmt"
"github.com/stretchr/testify/assert"
"strconv"
"testing"
)
// common vars
var (
validLunNumber = 199
validSCSIHost1 = "34"
validSCSIHost2 = "35"
validHostOnlyHCTL1 = scsi.HCTL{Host: validSCSIHost1, Channel: "-", Target: "-", Lun: "-"}
validHostOnlyHCTL2 = scsi.HCTL{Host: validSCSIHost2, Channel: "-", Target: "-", Lun: "-"}
validHCTL1 = scsi.HCTL{
Host: validSCSIHost1,
Channel: "0",
Target: "0",
Lun: strconv.FormatInt(int64(validLunNumber), 10)}
validHCTL1Target1 = scsi.HCTL{
Host: validSCSIHost1,
Channel: "0",
Target: "1",
Lun: strconv.FormatInt(int64(validLunNumber), 10)}
validHCTL2 = scsi.HCTL{
Host: validSCSIHost2,
Channel: "0",
Target: "0",
Lun: strconv.FormatInt(int64(validLunNumber), 10)}
validDevice = Device{
WWN: mockhelper.ValidWWID,
Name: mockhelper.ValidDeviceName,
}
validDeviceMultipath = Device{
Name: mockhelper.ValidDMName,
WWN: mockhelper.ValidWWID,
MultipathID: mockhelper.ValidWWID}
)
const (
msg1 = "foo:%s"
arg1 = "bar"
msg2 = "spam"
)
var (
logData []string
traceData []string
)
type testLogger struct{}
func addToLogData(ctx context.Context, format string, args ...interface{}) {
logData = append(logData, fmt.Sprintf(format, args...))
}
func (tl *testLogger) Info(ctx context.Context, format string, args ...interface{}) {
addToLogData(ctx, format, args...)
}
func (tl *testLogger) Debug(ctx context.Context, format string, args ...interface{}) {
addToLogData(ctx, format, args...)
}
func (tl *testLogger) Error(ctx context.Context, format string, args ...interface{}) {
addToLogData(ctx, format, args...)
}
func TestSetLogger(t *testing.T) {
SetLogger(&testLogger{})
defer SetLogger(&logger.DummyLogger{})
ctx := context.Background()
logger.Info(ctx, msg1, arg1)
logger.Error(ctx, msg2)
assert.Contains(t, logData, fmt.Sprintf(msg1, arg1))
assert.Contains(t, logData, msg2)
}
func TestSetTracer(t *testing.T) {
SetTracer(&testTracer{})
defer SetTracer(&tracer.DummyTracer{})
ctx := context.Background()
tracer.Trace(ctx, msg1, arg1)
tracer.Trace(ctx, msg2)
assert.Contains(t, traceData, fmt.Sprintf(msg1, arg1))
assert.Contains(t, traceData, msg2)
}
type testTracer struct{}
func (tt *testTracer) Trace(ctx context.Context, format string, args ...interface{}) {
traceData = append(traceData, fmt.Sprintf(format, args...))
}