Skip to content

Commit 9722050

Browse files
committed
vTPM: add unit tests in VmwareResourceTest
1 parent aabee5e commit 9722050

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3240,7 +3240,7 @@ protected void configureVirtualTPM(VirtualMachineMO vmMo, VirtualMachineTO vmSpe
32403240
}
32413241
}
32423242

3243-
private void addVirtualTPMDevice(VirtualMachineConfigSpec vmConfigSpec) {
3243+
protected void addVirtualTPMDevice(VirtualMachineConfigSpec vmConfigSpec) {
32443244
Description description = new Description();
32453245
description.setSummary("Trusted Platform Module");
32463246
description.setLabel("Trusted Platform Module");
@@ -3252,7 +3252,7 @@ private void addVirtualTPMDevice(VirtualMachineConfigSpec vmConfigSpec) {
32523252
vmConfigSpec.getDeviceChange().add(deviceConfigSpec);
32533253
}
32543254

3255-
private void removeVirtualTPMDevice(VirtualMachineConfigSpec vmConfigSpec, VirtualTPM virtualTPM) {
3255+
protected void removeVirtualTPMDevice(VirtualMachineConfigSpec vmConfigSpec, VirtualTPM virtualTPM) {
32563256
VirtualDeviceConfigSpec virtualDeviceConfigSpec = new VirtualDeviceConfigSpec();
32573257
virtualDeviceConfigSpec.setDevice(virtualTPM);
32583258
virtualDeviceConfigSpec.setOperation(VirtualDeviceConfigSpecOperation.REMOVE);

plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/resource/VmwareResourceTest.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@
4848
import com.vmware.vim25.FileInfo;
4949
import com.vmware.vim25.HostDatastoreBrowserSearchResults;
5050
import com.vmware.vim25.HostDatastoreBrowserSearchSpec;
51+
import com.vmware.vim25.VirtualTPM;
52+
import org.apache.cloudstack.api.ApiConstants;
5153
import org.apache.cloudstack.storage.command.CopyCommand;
5254
import org.apache.cloudstack.storage.command.browser.ListDataStoreObjectsAnswer;
5355
import org.apache.cloudstack.storage.command.browser.ListDataStoreObjectsCommand;
@@ -842,4 +844,37 @@ public void testExecuteWithEmptyPath() throws Exception {
842844
assertEquals(Collections.singletonList(1L), answer.getSizes());
843845
assertEquals(Collections.singletonList(date.getTime()), answer.getLastModified());
844846
}
847+
848+
@Test
849+
public void testAddVirtualTPMDevice() throws Exception {
850+
VirtualMachineMO vmMo = Mockito.mock(VirtualMachineMO.class);
851+
VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class);
852+
VirtualMachineConfigSpec vmConfigSpec = Mockito.mock(VirtualMachineConfigSpec.class);
853+
Map<String, String> details = new HashMap<>();
854+
details.put(ApiConstants.BootType.UEFI.toString(), "SECURE");
855+
details.put(VmDetailConstants.VIRTUAL_TPM_ENABLED, "true");
856+
when(vmSpec.getDetails()).thenReturn(details);
857+
when(vmMo.getAllDeviceList()).thenReturn(new ArrayList<>());
858+
Mockito.doNothing().when(vmwareResource).addVirtualTPMDevice(vmConfigSpec);
859+
860+
vmwareResource.configureVirtualTPM(vmMo, vmSpec, vmConfigSpec, "uefi");
861+
Mockito.verify(vmwareResource, Mockito.times(1)).addVirtualTPMDevice(vmConfigSpec);
862+
}
863+
864+
@Test
865+
public void testRemoveVirtualTPMDevice() throws Exception {
866+
VirtualMachineMO vmMo = Mockito.mock(VirtualMachineMO.class);
867+
VirtualMachineTO vmSpec = Mockito.mock(VirtualMachineTO.class);
868+
VirtualMachineConfigSpec vmConfigSpec = Mockito.mock(VirtualMachineConfigSpec.class);
869+
Map<String, String> details = new HashMap<>();
870+
details.put(ApiConstants.BootType.UEFI.toString(), "SECURE");
871+
details.put(VmDetailConstants.VIRTUAL_TPM_ENABLED, "false");
872+
when(vmSpec.getDetails()).thenReturn(details);
873+
VirtualTPM tpm = new VirtualTPM();
874+
when(vmMo.getAllDeviceList()).thenReturn(List.of(tpm));
875+
Mockito.doNothing().when(vmwareResource).addVirtualTPMDevice(vmConfigSpec);
876+
877+
vmwareResource.configureVirtualTPM(vmMo, vmSpec, vmConfigSpec, "uefi");
878+
Mockito.verify(vmwareResource, Mockito.times(1)).removeVirtualTPMDevice(vmConfigSpec, tpm);
879+
}
845880
}

0 commit comments

Comments
 (0)