forked from kayac/ecspresso
-
Notifications
You must be signed in to change notification settings - Fork 0
/
options_test.go
78 lines (73 loc) · 1.47 KB
/
options_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
package ecspresso_test
import (
"testing"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ecs"
"github.com/google/go-cmp/cmp"
"github.com/kayac/ecspresso"
)
type tagsTestSuite struct {
src string
tags []*ecs.Tag
ok bool
}
var tagsTestSuites = []tagsTestSuite{
{
src: "",
tags: []*ecs.Tag{},
ok: true,
},
{
src: "Foo=FOO",
tags: []*ecs.Tag{
{Key: aws.String("Foo"), Value: aws.String("FOO")},
},
ok: true,
},
{
src: "Foo=FOO,Bar=BAR",
tags: []*ecs.Tag{
{Key: aws.String("Foo"), Value: aws.String("FOO")},
{Key: aws.String("Bar"), Value: aws.String("BAR")},
},
ok: true,
},
{
src: "Foo=,Bar=",
tags: []*ecs.Tag{
{Key: aws.String("Foo"), Value: aws.String("")},
{Key: aws.String("Bar"), Value: aws.String("")},
},
ok: true,
},
{
src: "Foo=FOO,Bar=BAR,Baz=BAZ,",
tags: []*ecs.Tag{
{Key: aws.String("Foo"), Value: aws.String("FOO")},
{Key: aws.String("Bar"), Value: aws.String("BAR")},
{Key: aws.String("Baz"), Value: aws.String("BAZ")},
},
ok: true,
},
{src: "Foo"}, // fail patterns
{src: "Foo=,Bar"}, // fail patterns
{src: "="}, // fail patterns
}
func TestParseTags(t *testing.T) {
for _, ts := range tagsTestSuites {
tags, err := ecspresso.ParseTags(ts.src)
if ts.ok {
if err != nil {
t.Error(err)
continue
}
if d := cmp.Diff(tags, ts.tags); d != "" {
t.Error(d)
}
} else {
if err == nil {
t.Errorf("must be failed %s", ts.src)
}
}
}
}