-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathparser_test.go
48 lines (39 loc) · 1.09 KB
/
parser_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
package rfc5424
import (
"testing"
"github.com/leodido/go-syslog/v4"
syslogtesting "github.com/leodido/go-syslog/v4/testing"
"github.com/stretchr/testify/assert"
)
func TestParserBestEffortOption(t *testing.T) {
p1 := NewParser().(syslog.BestEfforter)
assert.False(t, p1.HasBestEffort())
p2 := NewParser(WithBestEffort()).(syslog.BestEfforter)
assert.True(t, p2.HasBestEffort())
}
func TestParserParse(t *testing.T) {
p := NewParser()
pBest := NewParser(WithBestEffort())
for _, tc := range testCases {
tc := tc
t.Run(syslogtesting.RightPad(string(tc.input), 50), func(t *testing.T) {
t.Parallel()
message, merr := p.Parse(tc.input)
partial, perr := pBest.Parse(tc.input)
if !tc.valid {
assert.Nil(t, message)
assert.Error(t, merr)
assert.EqualError(t, merr, tc.errorString)
assert.Equal(t, tc.partialValue, partial)
assert.EqualError(t, perr, tc.errorString)
}
if tc.valid {
assert.Nil(t, merr)
assert.NotEmpty(t, message)
assert.Equal(t, message, partial)
assert.Equal(t, merr, perr)
}
assert.Equal(t, tc.value, message)
})
}
}