@@ -48,7 +48,7 @@ func TestVolumeCreateErrors(t *testing.T) {
4848 )
4949 cmd .SetArgs (tc .args )
5050 for key , value := range tc .flags {
51- cmd .Flags ().Set (key , value )
51+ assert . Check ( t , cmd .Flags ().Set (key , value ) )
5252 }
5353 cmd .SetOut (io .Discard )
5454 cmd .SetErr (io .Discard )
@@ -57,7 +57,7 @@ func TestVolumeCreateErrors(t *testing.T) {
5757}
5858
5959func TestVolumeCreateWithName (t * testing.T ) {
60- name : = "foo "
60+ const name = "my-volume-name "
6161 cli := test .NewFakeCli (& fakeClient {
6262 volumeCreateFunc : func (body volume.CreateOptions ) (volume.Volume , error ) {
6363 if body .Name != name {
@@ -70,23 +70,42 @@ func TestVolumeCreateWithName(t *testing.T) {
7070 })
7171
7272 buf := cli .OutBuffer ()
73+ t .Run ("using-flags" , func (t * testing.T ) {
74+ cmd := newCreateCommand (cli )
75+ cmd .SetOut (io .Discard )
76+ cmd .SetErr (io .Discard )
77+ cmd .SetArgs ([]string {})
78+ assert .Check (t , cmd .Flags ().Set ("name" , name ))
79+ assert .NilError (t , cmd .Execute ())
80+ assert .Check (t , is .Equal (strings .TrimSpace (buf .String ()), name ))
81+ })
7382
74- // Test by flags
75- cmd := newCreateCommand (cli )
76- cmd .Flags ().Set ("name" , name )
77- assert .NilError (t , cmd .Execute ())
78- assert .Check (t , is .Equal (name , strings .TrimSpace (buf .String ())))
83+ buf .Reset ()
84+ t .Run ("using-args" , func (t * testing.T ) {
85+ cmd := newCreateCommand (cli )
86+ cmd .SetOut (io .Discard )
87+ cmd .SetErr (io .Discard )
88+ cmd .SetArgs ([]string {name })
89+ assert .NilError (t , cmd .Execute ())
90+ assert .Check (t , is .Equal (strings .TrimSpace (buf .String ()), name ))
91+ })
7992
80- // Then by args
8193 buf .Reset ()
82- cmd = newCreateCommand (cli )
83- cmd .SetArgs ([]string {name })
84- assert .NilError (t , cmd .Execute ())
85- assert .Check (t , is .Equal (name , strings .TrimSpace (buf .String ())))
94+ t .Run ("using-both" , func (t * testing.T ) {
95+ cmd := newCreateCommand (cli )
96+ cmd .SetOut (io .Discard )
97+ cmd .SetErr (io .Discard )
98+ cmd .SetArgs ([]string {name })
99+ assert .Check (t , cmd .Flags ().Set ("name" , name ))
100+ err := cmd .Execute ()
101+ assert .Check (t , is .Error (err , `conflicting options: cannot specify a volume-name through both --name and as a positional arg` ))
102+ assert .Check (t , is .Equal (strings .TrimSpace (buf .String ()), "" ))
103+ })
86104}
87105
88106func TestVolumeCreateWithFlags (t * testing.T ) {
89- expectedDriver := "foo"
107+ const name = "random-generated-name"
108+ const expectedDriver = "foo-volume-driver"
90109 expectedOpts := map [string ]string {
91110 "bar" : "1" ,
92111 "baz" : "baz" ,
@@ -95,7 +114,6 @@ func TestVolumeCreateWithFlags(t *testing.T) {
95114 "lbl1" : "v1" ,
96115 "lbl2" : "v2" ,
97116 }
98- name := "banana"
99117
100118 cli := test .NewFakeCli (& fakeClient {
101119 volumeCreateFunc : func (body volume.CreateOptions ) (volume.Volume , error ) {
@@ -118,13 +136,16 @@ func TestVolumeCreateWithFlags(t *testing.T) {
118136 })
119137
120138 cmd := newCreateCommand (cli )
121- cmd .Flags ().Set ("driver" , "foo" )
122- cmd .Flags ().Set ("opt" , "bar=1" )
123- cmd .Flags ().Set ("opt" , "baz=baz" )
124- cmd .Flags ().Set ("label" , "lbl1=v1" )
125- cmd .Flags ().Set ("label" , "lbl2=v2" )
139+ cmd .SetOut (io .Discard )
140+ cmd .SetErr (io .Discard )
141+ cmd .SetArgs ([]string {})
142+ assert .Check (t , cmd .Flags ().Set ("driver" , expectedDriver ))
143+ assert .Check (t , cmd .Flags ().Set ("opt" , "bar=1" ))
144+ assert .Check (t , cmd .Flags ().Set ("opt" , "baz=baz" ))
145+ assert .Check (t , cmd .Flags ().Set ("label" , "lbl1=v1" ))
146+ assert .Check (t , cmd .Flags ().Set ("label" , "lbl2=v2" ))
126147 assert .NilError (t , cmd .Execute ())
127- assert .Check (t , is .Equal (name , strings .TrimSpace (cli .OutBuffer ().String ())))
148+ assert .Check (t , is .Equal (strings .TrimSpace (cli .OutBuffer ().String ()), name ))
128149}
129150
130151func TestVolumeCreateCluster (t * testing.T ) {
@@ -140,19 +161,27 @@ func TestVolumeCreateCluster(t *testing.T) {
140161 },
141162 })
142163
143- cmd := newCreateCommand (cli )
144- cmd .Flags ().Set ("type" , "block" )
145- cmd .Flags ().Set ("group" , "gronp" )
146- cmd .Flags ().Set ("driver" , "csi" )
147- cmd .SetArgs ([]string {"name" })
164+ t .Run ("csi-volume" , func (t * testing.T ) {
165+ cmd := newCreateCommand (cli )
166+ cmd .SetOut (io .Discard )
167+ cmd .SetErr (io .Discard )
168+ assert .Check (t , cmd .Flags ().Set ("type" , "block" ))
169+ assert .Check (t , cmd .Flags ().Set ("group" , "gronp" ))
170+ assert .Check (t , cmd .Flags ().Set ("driver" , "csi" ))
171+ cmd .SetArgs ([]string {"my-csi-volume" })
148172
149- assert .NilError (t , cmd .Execute ())
173+ assert .NilError (t , cmd .Execute ())
174+ })
150175
151- cmd = newCreateCommand (cli )
152- cmd .Flags ().Set ("driver" , "notcsi" )
153- cmd .SetArgs ([]string {"name" })
176+ t .Run ("non-csi-volume" , func (t * testing.T ) {
177+ cmd := newCreateCommand (cli )
178+ cmd .SetOut (io .Discard )
179+ cmd .SetErr (io .Discard )
180+ assert .Check (t , cmd .Flags ().Set ("driver" , "notcsi" ))
181+ cmd .SetArgs ([]string {"my-non-csi-volume" })
154182
155- assert .NilError (t , cmd .Execute ())
183+ assert .NilError (t , cmd .Execute ())
184+ })
156185}
157186
158187func TestVolumeCreateClusterOpts (t * testing.T ) {
@@ -204,25 +233,27 @@ func TestVolumeCreateClusterOpts(t *testing.T) {
204233 })
205234
206235 cmd := newCreateCommand (cli )
236+ cmd .SetOut (io .Discard )
237+ cmd .SetErr (io .Discard )
207238 cmd .SetArgs ([]string {"name" })
208- cmd .Flags ().Set ("driver" , "csi" )
209- cmd .Flags ().Set ("group" , "gronp" )
210- cmd .Flags ().Set ("scope" , "multi" )
211- cmd .Flags ().Set ("sharing" , "onewriter" )
212- cmd .Flags ().Set ("type" , "mount" )
213- cmd .Flags ().Set ("sharing" , "onewriter" )
214- cmd .Flags ().Set ("required-bytes" , "1234" )
215- cmd .Flags ().Set ("limit-bytes" , "567890" )
216-
217- cmd .Flags ().Set ("secret" , "key1=secret1" )
218- cmd .Flags ().Set ("secret" , "key2=secret2" )
219-
220- cmd .Flags ().Set ("topology-required" , "region=R1,zone=Z1" )
221- cmd .Flags ().Set ("topology-required" , "region=R1,zone=Z2" )
222- cmd .Flags ().Set ("topology-required" , "region=R1,zone=Z3" )
223-
224- cmd .Flags ().Set ("topology-preferred" , "region=R1,zone=Z2" )
225- cmd .Flags ().Set ("topology-preferred" , "region=R1,zone=Z3" )
226-
227- cmd .Execute ()
239+ assert . Check ( t , cmd .Flags ().Set ("driver" , "csi" ) )
240+ assert . Check ( t , cmd .Flags ().Set ("group" , "gronp" ) )
241+ assert . Check ( t , cmd .Flags ().Set ("scope" , "multi" ) )
242+ assert . Check ( t , cmd .Flags ().Set ("sharing" , "onewriter" ) )
243+ assert . Check ( t , cmd .Flags ().Set ("type" , "mount" ) )
244+ assert . Check ( t , cmd .Flags ().Set ("sharing" , "onewriter" ) )
245+ assert . Check ( t , cmd .Flags ().Set ("required-bytes" , "1234" ) )
246+ assert . Check ( t , cmd .Flags ().Set ("limit-bytes" , "567890" ) )
247+
248+ assert . Check ( t , cmd .Flags ().Set ("secret" , "key1=secret1" ) )
249+ assert . Check ( t , cmd .Flags ().Set ("secret" , "key2=secret2" ) )
250+
251+ assert . Check ( t , cmd .Flags ().Set ("topology-required" , "region=R1,zone=Z1" ) )
252+ assert . Check ( t , cmd .Flags ().Set ("topology-required" , "region=R1,zone=Z2" ) )
253+ assert . Check ( t , cmd .Flags ().Set ("topology-required" , "region=R1,zone=Z3" ) )
254+
255+ assert . Check ( t , cmd .Flags ().Set ("topology-preferred" , "region=R1,zone=Z2" ) )
256+ assert . Check ( t , cmd .Flags ().Set ("topology-preferred" , "region=R1,zone=Z3" ) )
257+
258+ assert . NilError ( t , cmd .Execute () )
228259}
0 commit comments