From d32c2d5829e32ba114f104a66ad7133f2c949178 Mon Sep 17 00:00:00 2001 From: Pengfei Ni Date: Tue, 16 Apr 2019 17:19:04 +0800 Subject: [PATCH] Add unit tests --- .../providers/azure/azure_vmss_test.go | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/pkg/cloudprovider/providers/azure/azure_vmss_test.go b/pkg/cloudprovider/providers/azure/azure_vmss_test.go index e963a854dc..b1d818c56f 100644 --- a/pkg/cloudprovider/providers/azure/azure_vmss_test.go +++ b/pkg/cloudprovider/providers/azure/azure_vmss_test.go @@ -80,6 +80,21 @@ func setTestVirtualMachineCloud(ss *Cloud, scaleSetName, zone string, faultDomai ID: &interfaceID, }, } + ipConfigurations := []compute.VirtualMachineScaleSetIPConfiguration{ + { + Name: to.StringPtr("ipconfig1"), + VirtualMachineScaleSetIPConfigurationProperties: &compute.VirtualMachineScaleSetIPConfigurationProperties{}, + }, + } + networkConfigurations := []compute.VirtualMachineScaleSetNetworkConfiguration{ + { + Name: to.StringPtr("ipconfig1"), + ID: to.StringPtr("fakeNetworkConfiguration"), + VirtualMachineScaleSetNetworkConfigurationProperties: &compute.VirtualMachineScaleSetNetworkConfigurationProperties{ + IPConfigurations: &ipConfigurations, + }, + }, + } vmssVM := compute.VirtualMachineScaleSetVM{ VirtualMachineScaleSetVMProperties: &compute.VirtualMachineScaleSetVMProperties{ OsProfile: &compute.OSProfile{ @@ -88,6 +103,9 @@ func setTestVirtualMachineCloud(ss *Cloud, scaleSetName, zone string, faultDomai NetworkProfile: &compute.NetworkProfile{ NetworkInterfaces: &networkInterfaces, }, + NetworkProfileConfiguration: &compute.VirtualMachineScaleSetVMNetworkProfileConfiguration{ + NetworkInterfaceConfigurations: &networkConfigurations, + }, InstanceView: &compute.VirtualMachineScaleSetVMInstanceView{ PlatformFaultDomain: &faultDomain, }, @@ -307,3 +325,52 @@ func TestGetIPByNodeName(t *testing.T) { assert.Equal(t, test.expected, []string{privateIP, publicIP}, test.description) } } + +func TestGetNodeNameByIPConfigurationID(t *testing.T) { + ipConfigurationIDTemplate := "/subscriptions/script/resourceGroups/rg/providers/Microsoft.Compute/virtualMachineScaleSets/%s/virtualMachines/%s/networkInterfaces/%s/ipConfigurations/ipconfig1" + + testCases := []struct { + description string + scaleSet string + vmList []string + ipConfigurationID string + expected string + expectError bool + }{ + { + description: "getNodeNameByIPConfigurationID should get node's Name when the node is existing", + scaleSet: "scaleset1", + ipConfigurationID: fmt.Sprintf(ipConfigurationIDTemplate, "scaleset1", "0", "scaleset1"), + vmList: []string{"vmssee6c2000000", "vmssee6c2000001"}, + expected: "vmssee6c2000000", + }, + { + description: "getNodeNameByIPConfigurationID should return error for non-exist nodes", + scaleSet: "scaleset2", + ipConfigurationID: fmt.Sprintf(ipConfigurationIDTemplate, "scaleset2", "3", "scaleset1"), + vmList: []string{"vmssee6c2000002", "vmssee6c2000003"}, + expectError: true, + }, + { + description: "getNodeNameByIPConfigurationID should return error for wrong ipConfigurationID", + scaleSet: "scaleset3", + ipConfigurationID: "invalid-configuration-id", + vmList: []string{"vmssee6c2000004", "vmssee6c2000005"}, + expectError: true, + }, + } + + for _, test := range testCases { + ss, err := newTestScaleSet(test.scaleSet, "", 0, test.vmList) + assert.NoError(t, err, test.description) + + nodeName, err := ss.getNodeNameByIPConfigurationID(test.ipConfigurationID) + if test.expectError { + assert.Error(t, err, test.description) + continue + } + + assert.NoError(t, err, test.description) + assert.Equal(t, test.expected, nodeName, test.description) + } +}