github.com/vmware/go-vcloud-director/v2@v2.24.0/govcd/openapi_generic_unit_test.go (about) 1 //go:build unit || ALL 2 3 package govcd 4 5 import ( 6 "testing" 7 ) 8 9 func Test_urlFromEndpoint(t *testing.T) { 10 type args struct { 11 endpoint string 12 endpointParams []string 13 } 14 tests := []struct { 15 name string 16 args args 17 want string 18 wantErr bool 19 }{ 20 { 21 name: "PlaceholderAndSuffix", 22 args: args{endpoint: "1.0.0/edgeGateways/%s/ipsec/tunnels/", endpointParams: []string{"edgeGatewayId", "suffix"}}, 23 want: "1.0.0/edgeGateways/edgeGatewayId/ipsec/tunnels/suffix", 24 wantErr: false, 25 }, 26 { 27 name: "PlaceholderUnsatisfiedEmptySlice", 28 args: args{endpoint: "1.0.0/edgeGateways/%s/ipsec/tunnels/", endpointParams: []string{}}, 29 want: "", 30 wantErr: true, 31 }, 32 { 33 name: "PlaceholderUnsatisfiedNilSlice", 34 args: args{endpoint: "1.0.0/edgeGateways/%s/ipsec/tunnels/", endpointParams: nil}, 35 want: "", 36 wantErr: true, 37 }, 38 { 39 name: "NoPlaceholderNilSlice", 40 args: args{endpoint: "1.0.0/edgeGateways/ipsec/tunnels/", endpointParams: nil}, 41 want: "1.0.0/edgeGateways/ipsec/tunnels/", 42 wantErr: false, 43 }, 44 { 45 name: "NoPlaceholderEmptySlice", 46 args: args{endpoint: "1.0.0/edgeGateways/ipsec/tunnels/", endpointParams: []string{}}, 47 want: "1.0.0/edgeGateways/ipsec/tunnels/", 48 wantErr: false, 49 }, 50 { 51 name: "InsufficientPlaceholderReplacements", 52 args: args{endpoint: "1.0.0/edgeGateways/%s/ipsec/%s/tunnels/", endpointParams: []string{"replacement-one"}}, 53 want: "", 54 wantErr: true, 55 }, 56 { 57 name: "MultipleSuffixes", 58 args: args{endpoint: "1.0.0/edgeGateways/%s/ipsec/%s/tunnels/", endpointParams: []string{"replacement-one", "replacement-two", "suffix-one", "/", "suffix-two"}}, 59 want: "1.0.0/edgeGateways/replacement-one/ipsec/replacement-two/tunnels/suffix-one/suffix-two", 60 wantErr: false, 61 }, 62 } 63 for _, tt := range tests { 64 t.Run(tt.name, func(t *testing.T) { 65 got, err := urlFromEndpoint(tt.args.endpoint, tt.args.endpointParams) 66 if (err != nil) != tt.wantErr { 67 t.Errorf("urlFromEndpoint() error = %v, wantErr %v", err, tt.wantErr) 68 return 69 } 70 if got != tt.want { 71 t.Errorf("urlFromEndpoint() = %v, want %v", got, tt.want) 72 } 73 }) 74 } 75 }