-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflags_config_test.go
135 lines (100 loc) · 3.12 KB
/
flags_config_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
130
131
132
133
134
135
package dynflags_test
import (
"testing"
"github.com/containeroo/dynflags"
"github.com/stretchr/testify/assert"
)
func TestConfigGroup(t *testing.T) {
t.Parallel()
t.Run("Lookup existing flag", func(t *testing.T) {
t.Parallel()
group := &dynflags.ConfigGroup{
Name: "testGroup",
Flags: map[string]*dynflags.Flag{"flag1": {Usage: "Test Flag"}},
}
flag := group.Lookup("flag1")
assert.NotNil(t, flag)
assert.Equal(t, "Test Flag", flag.Usage)
})
t.Run("Lookup non-existing flag", func(t *testing.T) {
t.Parallel()
group := &dynflags.ConfigGroup{
Name: "testGroup",
Flags: map[string]*dynflags.Flag{},
}
flag := group.Lookup("flag1")
assert.Nil(t, flag)
})
}
func TestConfigGroups(t *testing.T) {
t.Parallel()
t.Run("Lookup existing group", func(t *testing.T) {
t.Parallel()
df := dynflags.New(dynflags.ContinueOnError)
df.Group("http")
groups := df.Config()
group := groups.Lookup("http")
assert.NotNil(t, group)
assert.Equal(t, "http", group.Name)
})
t.Run("Iterate over groups", func(t *testing.T) {
t.Parallel()
df := dynflags.New(dynflags.ContinueOnError)
df.Group("http")
df.Group("tcp")
groups := df.Config().Groups()
assert.Contains(t, groups, "http")
assert.Contains(t, groups, "tcp")
assert.Equal(t, "http", groups["http"].Name)
assert.Equal(t, "tcp", groups["tcp"].Name)
})
}
func TestConfigGroup_Lookup_NilHandling(t *testing.T) {
t.Parallel()
t.Run("Lookup on nil ConfigGroup returns nil", func(t *testing.T) {
t.Parallel()
var groupConfig *dynflags.ConfigGroup
result := groupConfig.Lookup("flag1")
assert.Nil(t, result, "Expected Lookup on nil ConfigGroup to return nil")
})
t.Run("Lookup non-existing flag returns nil", func(t *testing.T) {
t.Parallel()
groupConfig := &dynflags.ConfigGroup{
Name: "testGroup",
Flags: map[string]*dynflags.Flag{},
}
result := groupConfig.Lookup("nonExistingFlag")
assert.Nil(t, result, "Expected Lookup for non-existing flag to return nil")
})
}
func TestConfigGroups_Lookup_NilHandling(t *testing.T) {
t.Parallel()
t.Run("Lookup on nil ConfigGroups returns nil", func(t *testing.T) {
t.Parallel()
var configGroups *dynflags.ConfigGroups
result := configGroups.Lookup("group1")
assert.Nil(t, result, "Expected Lookup on nil ConfigGroups to return nil")
})
t.Run("Lookup non-existing group returns nil", func(t *testing.T) {
t.Parallel()
configGroups := &dynflags.ConfigGroups{}
result := configGroups.Lookup("nonExistingGroup")
assert.Nil(t, result, "Expected Lookup for non-existing group to return nil")
})
}
func TestConfigGroups_Groups_NilHandling(t *testing.T) {
t.Parallel()
t.Run("Groups on nil ConfigGroups returns nil", func(t *testing.T) {
var configGroups *dynflags.ConfigGroups
result := configGroups.Groups()
assert.Nil(t, result, "Expected Groups on nil ConfigGroups to return nil")
})
}
func TestDynFlags_Config_NilHandling(t *testing.T) {
t.Parallel()
t.Run("Config on nil DynFlags returns nil", func(t *testing.T) {
var dynFlags *dynflags.DynFlags
result := dynFlags.Config()
assert.Nil(t, result, "Expected Config on nil DynFlags to return nil")
})
}