@@ -24,73 +24,109 @@ import (
24
24
"sigs.k8s.io/controller-runtime/pkg/manager"
25
25
)
26
26
27
- func Test_Initializer (t * testing.T ) {
27
+ func testInitFunc (manager.Manager ) (enabled bool , err error ) {
28
+ return true , nil
29
+ }
30
+
31
+ func newTestInitializer () * managerInitializer {
28
32
initializer := New ()
29
- err := initializer .Add ("test1" , testInitFunc )
30
- assert .NoError (t , err )
31
- err = initializer .Add ("test2" , testInitFunc )
32
- assert .NoError (t , err )
33
- err = initializer .Add ("test3" , testInitFunc )
34
- assert .NoError (t , err )
35
- err = initializer .Add ("__internal" , testInitFunc , WithHidden (), WithDisableByDefault ())
36
- assert .NoError (t , err )
33
+ initializer .Add ("test1" , testInitFunc )
34
+ initializer .Add ("test2" , testInitFunc )
35
+ initializer .Add ("test3" , testInitFunc , WithDisableByDefault ())
36
+
37
+ return initializer .(* managerInitializer )
38
+ }
39
+
40
+ func Test_Initializer (t * testing.T ) {
41
+ initializer := newTestInitializer ()
37
42
38
43
// disable override
39
- err = initializer .Add ("test3" , testInitFunc )
44
+ err : = initializer .Add ("test3" , testInitFunc )
40
45
assert .Error (t , err )
41
46
// allow override
42
47
err = initializer .Add ("test3" , testInitFunc , WithOverride (), WithDisableByDefault ())
43
48
assert .NoError (t , err )
44
49
45
50
names := initializer .Knowns ()
46
- assert .EqualValues (t , []string {"__internal" , "test1" , "test2" , "test3" }, names )
47
- assert .True (t , initializer .Enabled ("test1" ))
48
- assert .True (t , initializer .Enabled ("test2" ))
49
- assert .False (t , initializer .Enabled ("test3" ))
50
- assert .True (t , initializer .Enabled ("__internal" ))
51
-
52
- // test bind flag
53
- fs := pflag .NewFlagSet ("test-*" , pflag .PanicOnError )
54
- initializer .BindFlag (fs )
55
- fs .Set (defaultName , "*" )
56
- err = fs .Parse (nil )
57
- assert .NoError (t , err )
58
- assert .True (t , initializer .Enabled ("test1" ))
59
- assert .True (t , initializer .Enabled ("test2" ))
60
- assert .False (t , initializer .Enabled ("test3" ))
61
- assert .True (t , initializer .Enabled ("__internal" ))
62
-
63
- fs = pflag .NewFlagSet ("test" , pflag .PanicOnError )
64
- initializer .BindFlag (fs )
65
- fs .Set (defaultName , "test1,test2" )
66
- err = fs .Parse (nil )
67
- assert .NoError (t , err )
51
+ assert .EqualValues (t , []string {"test1" , "test2" , "test3" }, names )
68
52
assert .True (t , initializer .Enabled ("test1" ))
69
53
assert .True (t , initializer .Enabled ("test2" ))
70
54
assert .False (t , initializer .Enabled ("test3" ))
71
- assert . True ( t , initializer . Enabled ( "__internal" ))
55
+ }
72
56
73
- fs = pflag .NewFlagSet ("test" , pflag .PanicOnError )
74
- initializer .BindFlag (fs )
75
- fs .Set (defaultName , "-test1,test3" )
76
- err = fs .Parse (nil )
77
- assert .NoError (t , err )
78
- assert .False (t , initializer .Enabled ("test1" ))
79
- assert .False (t , initializer .Enabled ("test2" ))
80
- assert .True (t , initializer .Enabled ("test3" ))
81
- assert .True (t , initializer .Enabled ("__internal" ))
57
+ func Test_Flag (t * testing.T ) {
58
+ tests := []struct {
59
+ name string
60
+ checkResult func (* assert.Assertions , * managerInitializer )
61
+ }{
62
+ {
63
+ name : "*" ,
64
+ checkResult : func (assert * assert.Assertions , initializer * managerInitializer ) {
65
+ assert .True (initializer .Enabled ("test1" ))
66
+ assert .True (initializer .Enabled ("test2" ))
67
+ assert .False (initializer .Enabled ("test3" ))
68
+ assert .Equal ("test1,test2,-test3" , initializer .String ())
69
+ },
70
+ },
82
71
83
- fs = pflag .NewFlagSet ("test" , pflag .PanicOnError )
84
- initializer .BindFlag (fs )
85
- fs .Set (defaultName , "-test1,-__internal" )
86
- err = fs .Parse (nil )
87
- assert .NoError (t , err )
88
- assert .False (t , initializer .Enabled ("test1" ))
89
- assert .False (t , initializer .Enabled ("test2" ))
90
- assert .False (t , initializer .Enabled ("test3" ))
91
- assert .True (t , initializer .Enabled ("__internal" ))
92
- }
72
+ {
73
+ name : "test1,test2" ,
74
+ checkResult : func (assert * assert.Assertions , initializer * managerInitializer ) {
75
+ assert .True (initializer .Enabled ("test1" ))
76
+ assert .True (initializer .Enabled ("test2" ))
77
+ assert .False (initializer .Enabled ("test3" ))
78
+ assert .Equal ("test1,test2,-test3" , initializer .String ())
79
+ },
80
+ },
81
+ {
82
+ name : "test3" ,
83
+ checkResult : func (assert * assert.Assertions , initializer * managerInitializer ) {
84
+ assert .False (initializer .Enabled ("test1" ))
85
+ assert .False (initializer .Enabled ("test2" ))
86
+ assert .True (initializer .Enabled ("test3" ))
87
+ assert .Equal ("-test1,-test2,test3" , initializer .String ())
88
+ },
89
+ },
90
+ {
91
+ name : "-test1" ,
92
+ checkResult : func (assert * assert.Assertions , initializer * managerInitializer ) {
93
+ assert .False (initializer .Enabled ("test1" ))
94
+ assert .False (initializer .Enabled ("test2" ))
95
+ assert .False (initializer .Enabled ("test3" ))
96
+ assert .Equal ("-test1,-test2,-test3" , initializer .String ())
97
+ },
98
+ },
99
+ {
100
+ name : "*,test3" ,
101
+ checkResult : func (assert * assert.Assertions , initializer * managerInitializer ) {
102
+ assert .True (initializer .Enabled ("test1" ))
103
+ assert .True (initializer .Enabled ("test2" ))
104
+ assert .True (initializer .Enabled ("test3" ))
105
+ assert .Equal ("test1,test2,test3" , initializer .String ())
106
+ },
107
+ },
108
+ {
109
+ name : "*,-test1" ,
110
+ checkResult : func (assert * assert.Assertions , initializer * managerInitializer ) {
111
+ assert .False (initializer .Enabled ("test1" ))
112
+ assert .True (initializer .Enabled ("test2" ))
113
+ assert .False (initializer .Enabled ("test3" ))
114
+ assert .Equal ("-test1,test2,-test3" , initializer .String ())
115
+ },
116
+ },
117
+ }
93
118
94
- func testInitFunc (manager.Manager ) (enabled bool , err error ) {
95
- return true , nil
119
+ for i := range tests {
120
+ tt := tests [i ]
121
+ t .Run (tt .name , func (t * testing.T ) {
122
+ initializer := newTestInitializer ()
123
+ // test bind flag
124
+ fs := pflag .NewFlagSet ("test" , pflag .PanicOnError )
125
+ initializer .BindFlag (fs )
126
+ fs .Set (defaultName , tt .name )
127
+ err := fs .Parse (nil )
128
+ assert .NoError (t , err )
129
+ tt .checkResult (assert .New (t ), initializer )
130
+ })
131
+ }
96
132
}
0 commit comments