-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathflags_test.go
68 lines (60 loc) · 1.27 KB
/
flags_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
package pogo_test
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/vporoshok/pogo"
)
func TestFlagsText(t *testing.T) {
t.Parallel()
cases := [...]struct {
name string
source string
result string
}{
{
name: "no flags",
source: "",
result: "",
},
{
name: "some tags",
source: "foo, bar",
result: "foo, bar",
},
{
name: "extra spaces",
source: " foo, \nbar ",
result: "foo, bar",
},
{
name: "duplicates",
source: "foo, foo",
result: "foo",
},
}
var flags pogo.Flags
for _, c := range cases {
c := c
t.Run(c.name, func(t *testing.T) {
flags.Parse(c.source)
assert.Equal(t, c.result, flags.String())
})
}
}
func TestFlags(t *testing.T) {
var flags pogo.Flags
assert.False(t, flags.Contain("foo"))
assert.True(t, flags.Add("foo"))
assert.True(t, flags.Add("bar"))
assert.True(t, flags.Contain("foo"))
assert.True(t, flags.Contain("bar"))
assert.False(t, flags.Add("bar"))
assert.True(t, flags.Contain("foo"))
assert.True(t, flags.Contain("bar"))
assert.True(t, flags.Remove("foo"))
assert.False(t, flags.Contain("foo"))
assert.True(t, flags.Contain("bar"))
assert.False(t, flags.Remove("foo"))
assert.False(t, flags.Contain("foo"))
assert.True(t, flags.Contain("bar"))
}