From d3b552cfd6516fe321fed56f6093cf837a069c4f Mon Sep 17 00:00:00 2001 From: Harikrishna Patnala Date: Tue, 30 Jan 2024 18:37:06 +0530 Subject: [PATCH] Fixed unit tests --- ...heckAndRepairVolumeCommandWrapperTest.java | 42 +++++++++---------- .../storage/VolumeApiServiceImplTest.java | 5 --- 2 files changed, 20 insertions(+), 27 deletions(-) diff --git a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckAndRepairVolumeCommandWrapperTest.java b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckAndRepairVolumeCommandWrapperTest.java index 3fa113dadbd..9eccc7c15b4 100644 --- a/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckAndRepairVolumeCommandWrapperTest.java +++ b/plugins/hypervisors/kvm/src/test/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtCheckAndRepairVolumeCommandWrapperTest.java @@ -30,13 +30,14 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; +import org.mockito.MockedConstruction; import org.mockito.Mockito; import org.mockito.Spy; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; +import org.mockito.junit.MockitoJUnitRunner; -@RunWith(PowerMockRunner.class) +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) public class LibvirtCheckAndRepairVolumeCommandWrapperTest { @Spy @@ -53,32 +54,29 @@ public class LibvirtCheckAndRepairVolumeCommandWrapperTest { @Before public void init() { - Mockito.when(libvirtComputingResourceMock.getCmdsTimeout()).thenReturn(60); + when(libvirtComputingResourceMock.getCmdsTimeout()).thenReturn(60); } @Test - @PrepareForTest(LibvirtCheckAndRepairVolumeCommandWrapper.class) public void testCheckAndRepairVolume() throws Exception { CheckAndRepairVolumeCommand cmd = Mockito.mock(CheckAndRepairVolumeCommand.class); - Mockito.when(cmd.getPath()).thenReturn("cbac516a-0f1f-4559-921c-1a7c6c408ccf"); - Mockito.when(cmd.getRepair()).thenReturn(null); + when(cmd.getPath()).thenReturn("cbac516a-0f1f-4559-921c-1a7c6c408ccf"); + when(cmd.getRepair()).thenReturn(null); StorageFilerTO spool = Mockito.mock(StorageFilerTO.class); - Mockito.when(cmd.getPool()).thenReturn(spool); + when(cmd.getPool()).thenReturn(spool); KVMStoragePoolManager storagePoolMgr = Mockito.mock(KVMStoragePoolManager.class); - Mockito.when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); + when(libvirtComputingResourceMock.getStoragePoolMgr()).thenReturn(storagePoolMgr); KVMStoragePool pool = Mockito.mock(KVMStoragePool.class); - Mockito.when(spool.getType()).thenReturn(Storage.StoragePoolType.PowerFlex); - Mockito.when(spool.getUuid()).thenReturn("b6be258b-42b8-49a4-ad51-3634ef8ff76a"); - Mockito.when(storagePoolMgr.getStoragePool(Storage.StoragePoolType.PowerFlex, "b6be258b-42b8-49a4-ad51-3634ef8ff76a")).thenReturn(pool); + when(spool.getType()).thenReturn(Storage.StoragePoolType.PowerFlex); + when(spool.getUuid()).thenReturn("b6be258b-42b8-49a4-ad51-3634ef8ff76a"); + when(storagePoolMgr.getStoragePool(Storage.StoragePoolType.PowerFlex, "b6be258b-42b8-49a4-ad51-3634ef8ff76a")).thenReturn(pool); KVMPhysicalDisk vol = Mockito.mock(KVMPhysicalDisk.class); - Mockito.when(pool.getPhysicalDisk("cbac516a-0f1f-4559-921c-1a7c6c408ccf")).thenReturn(vol); + when(pool.getPhysicalDisk("cbac516a-0f1f-4559-921c-1a7c6c408ccf")).thenReturn(vol); VolumeInfo volume = Mockito.mock(VolumeInfo.class); - Mockito.when(volume.getPoolId()).thenReturn(1L); - Mockito.when(volume.getPath()).thenReturn("cbac516a-0f1f-4559-921c-1a7c6c408ccf"); String checkResult = "{\n" + " \"image-end-offset\": 6442582016,\n" + @@ -91,12 +89,12 @@ public class LibvirtCheckAndRepairVolumeCommandWrapperTest { " \"fragmented-clusters\": 96135\n" + "}"; - PowerMockito.whenNew(QemuImg.class).withArguments(Mockito.anyInt()).thenReturn(qemuImgMock); - Mockito.when(qemuImgMock.checkAndRepair(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(checkResult); - - CheckAndRepairVolumeAnswer result = (CheckAndRepairVolumeAnswer) libvirtCheckAndRepairVolumeCommandWrapperSpy.execute(cmd, libvirtComputingResourceMock); - - Assert.assertEquals(checkResult, result.getVolumeCheckExecutionResult()); + try (MockedConstruction ignored = Mockito.mockConstruction(QemuImg.class, (mock, context) -> { + when(mock.checkAndRepair(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(checkResult); + })) { + CheckAndRepairVolumeAnswer result = (CheckAndRepairVolumeAnswer) libvirtCheckAndRepairVolumeCommandWrapperSpy.execute(cmd, libvirtComputingResourceMock); + Assert.assertEquals(checkResult, result.getVolumeCheckExecutionResult()); + } } } diff --git a/server/src/test/java/com/cloud/storage/VolumeApiServiceImplTest.java b/server/src/test/java/com/cloud/storage/VolumeApiServiceImplTest.java index 4957eddecb8..f0b70f36b5c 100644 --- a/server/src/test/java/com/cloud/storage/VolumeApiServiceImplTest.java +++ b/server/src/test/java/com/cloud/storage/VolumeApiServiceImplTest.java @@ -1666,7 +1666,6 @@ public class VolumeApiServiceImplTest { @Test public void testValidationsForCheckVolumeAPI() { VolumeVO volume = mock(VolumeVO.class); - when(volumeDaoMock.findById(1L)).thenReturn(volume); AccountVO account = new AccountVO("admin", 1L, "networkDomain", Account.Type.NORMAL, "uuid"); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); @@ -1688,7 +1687,6 @@ public class VolumeApiServiceImplTest { @Test(expected = InvalidParameterValueException.class) public void testValidationsForCheckVolumeAPIWithRunningVM() { VolumeVO volume = mock(VolumeVO.class); - when(volumeDaoMock.findById(1L)).thenReturn(volume); AccountVO account = new AccountVO("admin", 1L, "networkDomain", Account.Type.NORMAL, "uuid"); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); @@ -1707,7 +1705,6 @@ public class VolumeApiServiceImplTest { @Test(expected = InvalidParameterValueException.class) public void testValidationsForCheckVolumeAPIWithNonexistedVM() { VolumeVO volume = mock(VolumeVO.class); - when(volumeDaoMock.findById(1L)).thenReturn(volume); AccountVO account = new AccountVO("admin", 1L, "networkDomain", Account.Type.NORMAL, "uuid"); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); @@ -1724,7 +1721,6 @@ public class VolumeApiServiceImplTest { @Test(expected = InvalidParameterValueException.class) public void testValidationsForCheckVolumeAPIWithAllocatedVolume() { VolumeVO volume = mock(VolumeVO.class); - when(volumeDaoMock.findById(1L)).thenReturn(volume); AccountVO account = new AccountVO("admin", 1L, "networkDomain", Account.Type.NORMAL, "uuid"); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); @@ -1744,7 +1740,6 @@ public class VolumeApiServiceImplTest { @Test(expected = InvalidParameterValueException.class) public void testValidationsForCheckVolumeAPIWithNonKVMhypervisor() { VolumeVO volume = mock(VolumeVO.class); - when(volumeDaoMock.findById(1L)).thenReturn(volume); AccountVO account = new AccountVO("admin", 1L, "networkDomain", Account.Type.NORMAL, "uuid"); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN);