mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 21:47:07 +00:00
Merge pull request #91974 from weijiehu/azure_controller_standard
Improves unit test code coverage for azure_controller_standard
This commit is contained in:
commit
e46cfe2f16
@ -46,18 +46,35 @@ func TestStandardAttachDisk(t *testing.T) {
|
|||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
desc string
|
desc string
|
||||||
nodeName types.NodeName
|
nodeName types.NodeName
|
||||||
|
isManagedDisk bool
|
||||||
|
isAttachFail bool
|
||||||
expectedErr bool
|
expectedErr bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
desc: "an error shall be returned if there's no corresponding vms",
|
desc: "an error shall be returned if there's no corresponding vms",
|
||||||
nodeName: "vm2",
|
nodeName: "vm2",
|
||||||
|
isManagedDisk: true,
|
||||||
expectedErr: true,
|
expectedErr: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
desc: "no error shall be returned if everything's good",
|
desc: "no error shall be returned if everything's good",
|
||||||
nodeName: "vm1",
|
nodeName: "vm1",
|
||||||
|
isManagedDisk: true,
|
||||||
expectedErr: false,
|
expectedErr: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "no error shall be returned if everything's good with non managed disk",
|
||||||
|
nodeName: "vm1",
|
||||||
|
isManagedDisk: false,
|
||||||
|
expectedErr: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
desc: "an error shall be returned if update attach disk failed",
|
||||||
|
nodeName: "vm1",
|
||||||
|
isManagedDisk: true,
|
||||||
|
isAttachFail: true,
|
||||||
|
expectedErr: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
@ -66,12 +83,28 @@ func TestStandardAttachDisk(t *testing.T) {
|
|||||||
expectedVMs := setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
expectedVMs := setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
||||||
mockVMsClient := testCloud.VirtualMachinesClient.(*mockvmclient.MockInterface)
|
mockVMsClient := testCloud.VirtualMachinesClient.(*mockvmclient.MockInterface)
|
||||||
for _, vm := range expectedVMs {
|
for _, vm := range expectedVMs {
|
||||||
|
vm.StorageProfile = &compute.StorageProfile{
|
||||||
|
OsDisk: &compute.OSDisk{
|
||||||
|
Name: to.StringPtr("osdisk1"),
|
||||||
|
ManagedDisk: &compute.ManagedDiskParameters{
|
||||||
|
ID: to.StringPtr("ManagedID"),
|
||||||
|
DiskEncryptionSet: &compute.DiskEncryptionSetParameters{
|
||||||
|
ID: to.StringPtr("DiskEncryptionSetID"),
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
DataDisks: &[]compute.DataDisk{},
|
||||||
|
}
|
||||||
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, *vm.Name, gomock.Any()).Return(vm, nil).AnyTimes()
|
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, *vm.Name, gomock.Any()).Return(vm, nil).AnyTimes()
|
||||||
}
|
}
|
||||||
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, "vm2", gomock.Any()).Return(compute.VirtualMachine{}, &retry.Error{HTTPStatusCode: http.StatusNotFound, RawError: cloudprovider.InstanceNotFound}).AnyTimes()
|
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, "vm2", gomock.Any()).Return(compute.VirtualMachine{}, &retry.Error{HTTPStatusCode: http.StatusNotFound, RawError: cloudprovider.InstanceNotFound}).AnyTimes()
|
||||||
|
if test.isAttachFail {
|
||||||
|
mockVMsClient.EXPECT().Update(gomock.Any(), testCloud.ResourceGroup, gomock.Any(), gomock.Any(), gomock.Any()).Return(&retry.Error{HTTPStatusCode: http.StatusNotFound, RawError: cloudprovider.InstanceNotFound}).AnyTimes()
|
||||||
|
} else {
|
||||||
mockVMsClient.EXPECT().Update(gomock.Any(), testCloud.ResourceGroup, gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
|
mockVMsClient.EXPECT().Update(gomock.Any(), testCloud.ResourceGroup, gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
|
||||||
|
}
|
||||||
|
|
||||||
err := vmSet.AttachDisk(true, "",
|
err := vmSet.AttachDisk(test.isManagedDisk, "",
|
||||||
"uri", test.nodeName, 0, compute.CachingTypesReadOnly, "", false)
|
"uri", test.nodeName, 0, compute.CachingTypesReadOnly, "", false)
|
||||||
assert.Equal(t, test.expectedErr, err != nil, "TestCase[%d]: %s, err: %v", i, test.desc, err)
|
assert.Equal(t, test.expectedErr, err != nil, "TestCase[%d]: %s, err: %v", i, test.desc, err)
|
||||||
}
|
}
|
||||||
@ -85,6 +118,7 @@ func TestStandardDetachDisk(t *testing.T) {
|
|||||||
desc string
|
desc string
|
||||||
nodeName types.NodeName
|
nodeName types.NodeName
|
||||||
diskName string
|
diskName string
|
||||||
|
isDetachFail bool
|
||||||
expectedError bool
|
expectedError bool
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
@ -104,6 +138,12 @@ func TestStandardDetachDisk(t *testing.T) {
|
|||||||
diskName: "disk1",
|
diskName: "disk1",
|
||||||
expectedError: false,
|
expectedError: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "an error shall be returned if detach disk failed",
|
||||||
|
nodeName: "vm1",
|
||||||
|
isDetachFail: true,
|
||||||
|
expectedError: true,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
@ -115,7 +155,11 @@ func TestStandardDetachDisk(t *testing.T) {
|
|||||||
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, *vm.Name, gomock.Any()).Return(vm, nil).AnyTimes()
|
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, *vm.Name, gomock.Any()).Return(vm, nil).AnyTimes()
|
||||||
}
|
}
|
||||||
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, "vm2", gomock.Any()).Return(compute.VirtualMachine{}, &retry.Error{HTTPStatusCode: http.StatusNotFound, RawError: cloudprovider.InstanceNotFound}).AnyTimes()
|
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, "vm2", gomock.Any()).Return(compute.VirtualMachine{}, &retry.Error{HTTPStatusCode: http.StatusNotFound, RawError: cloudprovider.InstanceNotFound}).AnyTimes()
|
||||||
|
if test.isDetachFail {
|
||||||
|
mockVMsClient.EXPECT().Update(gomock.Any(), testCloud.ResourceGroup, gomock.Any(), gomock.Any(), gomock.Any()).Return(&retry.Error{HTTPStatusCode: http.StatusNotFound, RawError: cloudprovider.InstanceNotFound}).AnyTimes()
|
||||||
|
} else {
|
||||||
mockVMsClient.EXPECT().Update(gomock.Any(), testCloud.ResourceGroup, gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
|
mockVMsClient.EXPECT().Update(gomock.Any(), testCloud.ResourceGroup, gomock.Any(), gomock.Any(), gomock.Any()).Return(nil).AnyTimes()
|
||||||
|
}
|
||||||
|
|
||||||
err := vmSet.DetachDisk(test.diskName, "", test.nodeName)
|
err := vmSet.DetachDisk(test.diskName, "", test.nodeName)
|
||||||
assert.Equal(t, test.expectedError, err != nil, "TestCase[%d]: %s", i, test.desc)
|
assert.Equal(t, test.expectedError, err != nil, "TestCase[%d]: %s", i, test.desc)
|
||||||
@ -129,6 +173,7 @@ func TestGetDataDisks(t *testing.T) {
|
|||||||
var testCases = []struct {
|
var testCases = []struct {
|
||||||
desc string
|
desc string
|
||||||
nodeName types.NodeName
|
nodeName types.NodeName
|
||||||
|
isDataDiskNull bool
|
||||||
expectedDataDisks []compute.DataDisk
|
expectedDataDisks []compute.DataDisk
|
||||||
expectedError bool
|
expectedError bool
|
||||||
crt azcache.AzureCacheReadType
|
crt azcache.AzureCacheReadType
|
||||||
@ -164,6 +209,14 @@ func TestGetDataDisks(t *testing.T) {
|
|||||||
expectedError: false,
|
expectedError: false,
|
||||||
crt: azcache.CacheReadTypeUnsafe,
|
crt: azcache.CacheReadTypeUnsafe,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
desc: "nil shall be returned if DataDisk is null",
|
||||||
|
nodeName: "vm1",
|
||||||
|
isDataDiskNull: true,
|
||||||
|
expectedDataDisks: nil,
|
||||||
|
expectedError: false,
|
||||||
|
crt: azcache.CacheReadTypeDefault,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for i, test := range testCases {
|
for i, test := range testCases {
|
||||||
testCloud := GetTestCloud(ctrl)
|
testCloud := GetTestCloud(ctrl)
|
||||||
@ -171,6 +224,9 @@ func TestGetDataDisks(t *testing.T) {
|
|||||||
expectedVMs := setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
expectedVMs := setTestVirtualMachines(testCloud, map[string]string{"vm1": "PowerState/Running"}, false)
|
||||||
mockVMsClient := testCloud.VirtualMachinesClient.(*mockvmclient.MockInterface)
|
mockVMsClient := testCloud.VirtualMachinesClient.(*mockvmclient.MockInterface)
|
||||||
for _, vm := range expectedVMs {
|
for _, vm := range expectedVMs {
|
||||||
|
if test.isDataDiskNull {
|
||||||
|
vm.StorageProfile = &compute.StorageProfile{}
|
||||||
|
}
|
||||||
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, *vm.Name, gomock.Any()).Return(vm, nil).AnyTimes()
|
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, *vm.Name, gomock.Any()).Return(vm, nil).AnyTimes()
|
||||||
}
|
}
|
||||||
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, gomock.Not("vm1"), gomock.Any()).Return(compute.VirtualMachine{}, &retry.Error{HTTPStatusCode: http.StatusNotFound, RawError: cloudprovider.InstanceNotFound}).AnyTimes()
|
mockVMsClient.EXPECT().Get(gomock.Any(), testCloud.ResourceGroup, gomock.Not("vm1"), gomock.Any()).Return(compute.VirtualMachine{}, &retry.Error{HTTPStatusCode: http.StatusNotFound, RawError: cloudprovider.InstanceNotFound}).AnyTimes()
|
||||||
|
Loading…
Reference in New Issue
Block a user