-
Notifications
You must be signed in to change notification settings - Fork 0
/
parser_test.go
33 lines (30 loc) · 1.5 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
package main
import (
"reflect"
"testing"
)
func TestParse(t *testing.T) {
testcases := []struct {
line string
expected *Branch
}{
{`feature/1234_foo`, &Branch{FullName: "feature/1234_foo", Action: "feature", ID: "1234", Description: "foo"}},
{`feature/1234_foo-bar`, &Branch{FullName: "feature/1234_foo-bar", Action: "feature", ID: "1234", Description: "foo-bar"}},
{`feature/1234_foo_bar`, &Branch{FullName: "feature/1234_foo_bar", Action: "feature", ID: "1234", Description: "foo_bar"}},
{`feature/1234-foo`, &Branch{FullName: "feature/1234-foo", Action: "feature", ID: "1234", Description: "foo"}},
{`feature/1234`, &Branch{FullName: "feature/1234", Action: "feature", ID: "1234", Description: ""}},
{`feature/foo`, &Branch{FullName: "feature/foo", Action: "feature", ID: "", Description: "foo"}},
{`#1234-foo-bar`, &Branch{FullName: "#1234-foo-bar", Action: "", ID: "1234", Description: "foo-bar"}},
{`JRA-1234`, &Branch{FullName: "JRA-1234", Action: "", ID: "1234", Description: ""}},
{`foo`, &Branch{FullName: "foo", Action: "", ID: "", Description: "foo"}},
{`foo-bar`, &Branch{FullName: "foo-bar", Action: "", ID: "", Description: "foo-bar"}},
{`1234`, &Branch{FullName: "1234", Action: "", ID: "1234", Description: ""}},
{``, &Branch{FullName: "", Action: "", ID: "", Description: ""}},
}
for _, testcase := range testcases {
parser := Parse(testcase.line)
if !reflect.DeepEqual(parser, testcase.expected) {
t.Fatalf("Expected %v, but %v:", testcase.expected, parser)
}
}
}