Skip to content

Commit 2ca0790

Browse files
committed
add UT for getDriverName
1 parent 13654b5 commit 2ca0790

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

pkg/controller/controller_test.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,3 +260,69 @@ func TestSupportsPluginControllerService(t *testing.T) {
260260
}
261261
}
262262
}
263+
264+
func TestGetDriverName(t *testing.T) {
265+
tests := []struct {
266+
name string
267+
output *csi.GetPluginInfoResponse
268+
injectError bool
269+
expectError bool
270+
}{
271+
{
272+
name: "success",
273+
output: &csi.GetPluginInfoResponse{
274+
Name: "csi/example",
275+
VendorVersion: "0.2.0",
276+
Manifest: map[string]string{
277+
"hello": "world",
278+
},
279+
},
280+
expectError: false,
281+
},
282+
{
283+
name: "gRPC error",
284+
output: nil,
285+
injectError: true,
286+
expectError: true,
287+
},
288+
{
289+
name: "empty name",
290+
output: &csi.GetPluginInfoResponse{
291+
Name: "",
292+
},
293+
expectError: true,
294+
},
295+
}
296+
297+
mockController, driver, identityServer, _, csiConn, err := createMockServer(t)
298+
if err != nil {
299+
t.Fatal(err)
300+
}
301+
defer mockController.Finish()
302+
defer driver.Stop()
303+
304+
for _, test := range tests {
305+
306+
in := &csi.GetPluginInfoRequest{}
307+
308+
out := test.output
309+
var injectedErr error = nil
310+
if test.injectError {
311+
injectedErr = fmt.Errorf("mock error")
312+
}
313+
314+
// Setup expectation
315+
identityServer.EXPECT().GetPluginInfo(gomock.Any(), in).Return(out, injectedErr).Times(1)
316+
317+
name, err := getDriverName(csiConn.conn, timeout)
318+
if test.expectError && err == nil {
319+
t.Errorf("test %q: Expected error, got none", test.name)
320+
}
321+
if !test.expectError && err != nil {
322+
t.Errorf("test %q: got error: %v", test.name, err)
323+
}
324+
if err == nil && name != "csi/example" {
325+
t.Errorf("got unexpected name: %q", name)
326+
}
327+
}
328+
}

0 commit comments

Comments
 (0)