-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathparser_test.go
129 lines (123 loc) · 3.18 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
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
118
119
120
121
122
123
124
125
126
127
128
129
package nervo
import (
"testing"
"github.com/stretchr/testify/assert"
)
func Test_ParseAnnounceMessage(t *testing.T) {
tests := []struct {
testMessage string
line string
expectedName string
expectedok bool
}{
{
testMessage: "given a line without spaces",
line: "ANNOUNCEsome_name",
expectedName: "",
expectedok: false,
},
{
testMessage: "given a line with 1 space",
line: "ANNOUNCE some_name",
expectedName: "some_name",
expectedok: true,
},
{
testMessage: "given a line with multiple spaces",
line: "ANNOUNCE some name",
expectedName: "some name",
expectedok: true,
},
{
testMessage: "given a line with a lowercase verb",
line: "announce some_name",
expectedName: "some_name",
expectedok: true,
},
{
testMessage: "given a line with another verb",
line: "TEST some_name",
expectedName: "",
expectedok: false,
},
{
testMessage: "given a line with a newline at the end",
line: "announce some_name\n",
expectedName: "some_name",
expectedok: true,
},
{
testMessage: "given a line with a carriage return and newline at the end",
line: "announce some_name\r\n",
expectedName: "some_name",
expectedok: true,
},
}
for _, test := range tests {
t.Run(test.testMessage, func(t *testing.T) {
parsedName, parsingOk := ParseAnnounceMessage(test.line)
assert.Equal(t, test.expectedName, parsedName)
assert.Equal(t, test.expectedok, parsingOk)
})
}
}
func Test_ParseGaitAction(t *testing.T) {
tests := []struct {
testMessage string
line string
expectedName string
expectedMessage string
expectedok bool
}{
{
testMessage: "given a line without spaces",
line: "leg1some_message",
expectedName: "",
expectedMessage: "",
expectedok: false,
},
{
testMessage: "given a line with 1 space",
line: "leg1 some_message",
expectedName: "leg1",
expectedMessage: "some_message",
expectedok: true,
},
{
testMessage: "given a line with multiple spaces",
line: "leg1 some message",
expectedName: "leg1",
expectedMessage: "some message",
expectedok: true,
},
{
testMessage: "given a line with a lowercase name",
line: "leg1 some_message",
expectedName: "leg1",
expectedMessage: "some_message",
expectedok: true,
},
{
testMessage: "given a line with a newline at the end",
line: "leg1 some_message\n",
expectedName: "leg1",
expectedMessage: "some_message",
expectedok: true,
},
{
testMessage: "given a line with a carriage return and newline at the end",
line: "leg1 some_message\r\n",
expectedName: "leg1",
expectedMessage: "some_message",
expectedok: true,
},
}
for _, test := range tests {
t.Run(test.testMessage, func(t *testing.T) {
parsedName, parsedMessage, parsingOk := ParseGaitAction(test.line)
assert.Equal(t, test.expectedName, parsedName)
assert.Equal(t, test.expectedMessage, parsedMessage)
assert.Equal(t, test.expectedok, parsingOk)
})
}
}