-
Notifications
You must be signed in to change notification settings - Fork 2
/
assert.go
59 lines (47 loc) · 1.58 KB
/
assert.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
package test
import (
"strconv"
"testing"
"time"
"github.com/sirupsen/logrus"
"github.com/stretchr/testify/assert"
)
// LoggingAssert struct exposes convenient assert methods for UPP logger specific log entries.
type LoggingAssert struct {
t *testing.T
entry *logrus.Entry
}
func Assert(t *testing.T, entry *logrus.Entry) *LoggingAssert {
return &LoggingAssert{t, entry}
}
func (a *LoggingAssert) HasField(key string, value interface{}) *LoggingAssert {
assert.Equal(a.t, value, a.entry.Data[key])
return a
}
func (a *LoggingAssert) HasFields(fields map[string]interface{}) *LoggingAssert {
for k, v := range fields {
a.HasField(k, v)
}
return a
}
func (a *LoggingAssert) HasMonitoringEvent(expectedEventName, expectedTID, expectedContentType string) *LoggingAssert {
return a.HasField("event", expectedEventName).
HasTransactionID(expectedTID).
HasField("content_type", expectedContentType).
HasField("monitoring_event", "true")
}
func (a *LoggingAssert) HasValidFlag(expectedFlag bool) *LoggingAssert {
return a.HasField("isValid", strconv.FormatBool(expectedFlag))
}
func (a *LoggingAssert) HasTransactionID(expectedTID string) *LoggingAssert {
return a.HasField("transaction_id", expectedTID)
}
func (a *LoggingAssert) HasUUID(expectedUUID string) *LoggingAssert {
return a.HasField("uuid", expectedUUID)
}
func (a *LoggingAssert) HasTime(expectedTime time.Time) *LoggingAssert {
return a.HasField("time", expectedTime.Format(time.RFC3339Nano))
}
func (a *LoggingAssert) HasError(expectedErr error) *LoggingAssert {
return a.HasField(logrus.ErrorKey, expectedErr)
}