@@ -318,3 +318,69 @@ func TestSupportsPluginControllerService(t *testing.T) {
318318 }
319319 }
320320}
321+
322+ func TestGetDriverName (t * testing.T ) {
323+ tests := []struct {
324+ name string
325+ output * csi.GetPluginInfoResponse
326+ injectError bool
327+ expectError bool
328+ }{
329+ {
330+ name : "success" ,
331+ output : & csi.GetPluginInfoResponse {
332+ Name : "csi/example" ,
333+ VendorVersion : "0.2.0" ,
334+ Manifest : map [string ]string {
335+ "hello" : "world" ,
336+ },
337+ },
338+ expectError : false ,
339+ },
340+ {
341+ name : "gRPC error" ,
342+ output : nil ,
343+ injectError : true ,
344+ expectError : true ,
345+ },
346+ {
347+ name : "empty name" ,
348+ output : & csi.GetPluginInfoResponse {
349+ Name : "" ,
350+ },
351+ expectError : true ,
352+ },
353+ }
354+
355+ mockController , driver , identityServer , _ , csiConn , err := createMockServer (t )
356+ if err != nil {
357+ t .Fatal (err )
358+ }
359+ defer mockController .Finish ()
360+ defer driver .Stop ()
361+
362+ for _ , test := range tests {
363+
364+ in := & csi.GetPluginInfoRequest {}
365+
366+ out := test .output
367+ var injectedErr error = nil
368+ if test .injectError {
369+ injectedErr = fmt .Errorf ("mock error" )
370+ }
371+
372+ // Setup expectation
373+ identityServer .EXPECT ().GetPluginInfo (gomock .Any (), in ).Return (out , injectedErr ).Times (1 )
374+
375+ name , err := getDriverName (csiConn .conn , timeout )
376+ if test .expectError && err == nil {
377+ t .Errorf ("test %q: Expected error, got none" , test .name )
378+ }
379+ if ! test .expectError && err != nil {
380+ t .Errorf ("test %q: got error: %v" , test .name , err )
381+ }
382+ if err == nil && name != "csi/example" {
383+ t .Errorf ("got unexpected name: %q" , name )
384+ }
385+ }
386+ }
0 commit comments