diff --git a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/guru/VMwareGuruTest.java b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/guru/VMwareGuruTest.java index 7398ef99a8c..06bf539c962 100644 --- a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/guru/VMwareGuruTest.java +++ b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/guru/VMwareGuruTest.java @@ -25,6 +25,7 @@ import java.util.Map; import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; +import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -34,8 +35,7 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.Spy; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; +import org.mockito.junit.MockitoJUnitRunner; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.support.AnnotationConfigContextLoader; @@ -54,8 +54,7 @@ import com.cloud.utils.Pair; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachineManager; -@RunWith(PowerMockRunner.class) -@PrepareForTest({VMwareGuru.class}) +@RunWith(MockitoJUnitRunner.class) @ContextConfiguration(loader = AnnotationConfigContextLoader.class) public class VMwareGuruTest { @@ -78,9 +77,16 @@ public class VMwareGuruTest { @Mock ClusterDetailsDao _clusterDetailsDao; + AutoCloseable closeable; + @Before public void testSetUp() throws Exception { - MockitoAnnotations.initMocks(this); + closeable = MockitoAnnotations.openMocks(this); + } + + @After + public void tearDown() throws Exception { + closeable.close(); } @Test @@ -99,7 +105,6 @@ public class VMwareGuruTest { HostVO hostVO = Mockito.mock(HostVO.class); Mockito.when(localStorage.getId()).thenReturn(1L); - Mockito.when(vm.getId()).thenReturn(1L); Mockito.when(_storagePoolDao.findById(1L)).thenReturn(storagePoolVO); Mockito.when(rootVolume.getVolumeType()).thenReturn(Volume.Type.ROOT); Mockito.when(dataVolume.getVolumeType()).thenReturn(Volume.Type.DATADISK); diff --git a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/guru/VmwareVmImplementerTest.java b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/guru/VmwareVmImplementerTest.java index 309eb6d35c4..80f73d61916 100755 --- a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/guru/VmwareVmImplementerTest.java +++ b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/guru/VmwareVmImplementerTest.java @@ -23,7 +23,7 @@ import static org.mockito.Mockito.verify; import java.util.HashMap; import java.util.Map; -import org.apache.cloudstack.framework.config.ConfigKey; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -32,16 +32,14 @@ import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import org.mockito.Spy; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; +import org.mockito.junit.MockitoJUnitRunner; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.support.AnnotationConfigContextLoader; import com.cloud.agent.api.to.VirtualMachineTO; import com.cloud.vm.VmDetailConstants; -@RunWith(PowerMockRunner.class) -@PrepareForTest({ConfigKey.class, VmwareVmImplementer.class}) +@RunWith(MockitoJUnitRunner.class) @ContextConfiguration(loader = AnnotationConfigContextLoader.class) public class VmwareVmImplementerTest { @@ -54,9 +52,16 @@ public class VmwareVmImplementerTest { private Map vmDetails = new HashMap(); + AutoCloseable closeable; + @Before public void testSetUp() throws Exception { - MockitoAnnotations.initMocks(this); + closeable = MockitoAnnotations.openMocks(this); + } + + @After + public void tearDown() throws Exception { + closeable.close(); } private void setConfigValues(Boolean globalNV, Boolean globalNVPVM, String localNV){ diff --git a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java index f0a06d0dcf1..0629e455148 100644 --- a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java +++ b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java @@ -80,12 +80,9 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Matchers; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; @@ -104,11 +101,11 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(loader = AnnotationConfigContextLoader.class) -@PrepareForTest({ComponentContext.class, ApplicationContext.class}) public class VmwareDatacenterApiUnitTest { @Inject @@ -166,11 +163,13 @@ public class VmwareDatacenterApiUnitTest { @Mock private static RemoveVmwareDcCmd removeCmd; + AutoCloseable closeable; + @Before public void testSetUp() { Mockito.when(_configDao.isPremium()).thenReturn(true); ComponentContext.initComponentsLifeCycle(); - MockitoAnnotations.initMocks(this); + closeable = MockitoAnnotations.openMocks(this); DataCenterVO zone = new DataCenterVO(UUID.randomUUID().toString(), "test", "8.8.8.8", null, "10.0.0.1", null, "10.0.0.1/24", null, null, NetworkType.Basic, null, null, true, @@ -208,21 +207,21 @@ public class VmwareDatacenterApiUnitTest { dcZoneMap = new VmwareDatacenterZoneMapVO(zoneId, vmwareDcId); - Mockito.when(_dcDao.persist(Matchers.any(DataCenterVO.class))).thenReturn(zone); + Mockito.when(_dcDao.persist(any(DataCenterVO.class))).thenReturn(zone); Mockito.when(_dcDao.findById(1L)).thenReturn(zone); - Mockito.when(_podDao.persist(Matchers.any(HostPodVO.class))).thenReturn(pod); + Mockito.when(_podDao.persist(any(HostPodVO.class))).thenReturn(pod); Mockito.when(_podDao.findById(1L)).thenReturn(pod); - Mockito.when(_clusterDao.persist(Matchers.any(ClusterVO.class))).thenReturn(cluster); + Mockito.when(_clusterDao.persist(any(ClusterVO.class))).thenReturn(cluster); Mockito.when(_clusterDao.findById(1L)).thenReturn(cluster); Mockito.when(_clusterDao.listByZoneId(1L)).thenReturn(null); Mockito.when(_clusterDao.expunge(1L)).thenReturn(true); - Mockito.when(_clusterDetailsDao.persist(Matchers.any(ClusterDetailsVO.class))).thenReturn(clusterDetails); + Mockito.when(_clusterDetailsDao.persist(any(ClusterDetailsVO.class))).thenReturn(clusterDetails); Mockito.when(_clusterDetailsDao.expunge(1L)).thenReturn(true); - Mockito.when(_vmwareDcDao.persist(Matchers.any(VmwareDatacenterVO.class))).thenReturn(dc); + Mockito.when(_vmwareDcDao.persist(any(VmwareDatacenterVO.class))).thenReturn(dc); Mockito.when(_vmwareDcDao.findById(1L)).thenReturn(null); Mockito.when(_vmwareDcDao.expunge(1L)).thenReturn(true); Mockito.when(_vmwareDcDao.getVmwareDatacenterByNameAndVcenter(vmwareDcName, vCenterHost)).thenReturn(null); - Mockito.when(_vmwareDcZoneMapDao.persist(Matchers.any(VmwareDatacenterZoneMapVO.class))).thenReturn(dcZoneMap); + Mockito.when(_vmwareDcZoneMapDao.persist(any(VmwareDatacenterZoneMapVO.class))).thenReturn(dcZoneMap); Mockito.when(_vmwareDcZoneMapDao.findByZoneId(1L)).thenReturn(null); Mockito.when(_vmwareDcZoneMapDao.expunge(1L)).thenReturn(true); Mockito.when(addCmd.getZoneId()).thenReturn(1L); @@ -234,8 +233,9 @@ public class VmwareDatacenterApiUnitTest { } @After - public void tearDown() { + public void tearDown() throws Exception { CallContext.unregister(); + closeable.close(); } //@Test(expected = InvalidParameterValueException.class) diff --git a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImplTest.java b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImplTest.java index 714036d4e37..0b7eff0ee75 100644 --- a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImplTest.java +++ b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/manager/VmwareManagerImplTest.java @@ -29,7 +29,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.Spy; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.junit.MockitoJUnitRunner; import com.cloud.dc.ClusterDetailsDao; import com.cloud.dc.ClusterVO; @@ -112,8 +112,8 @@ public class VmwareManagerImplTest { Assert.assertEquals(vmwareDatacenter.getUser(), updateVmwareDcCmd.getUsername()); Assert.assertEquals(vmwareDatacenter.getPassword(), updateVmwareDcCmd.getPassword()); Mockito.verify(clusterDetails, Mockito.times(2)).put(Mockito.anyString(), Mockito.anyString()); - Mockito.verify(clusterDetailsDao, Mockito.times(1)).persist(Mockito.anyLong(), Mockito.anyMapOf(String.class, String.class)); + Mockito.verify(clusterDetailsDao, Mockito.times(1)).persist(Mockito.anyLong(), Mockito.anyMap()); Mockito.verify(hostDetails, Mockito.times(3)).put(Mockito.anyString(), Mockito.anyString()); - Mockito.verify(hostDetailsDao, Mockito.times(1)).persist(Mockito.anyLong(), Mockito.anyMapOf(String.class, String.class)); + Mockito.verify(hostDetailsDao, Mockito.times(1)).persist(Mockito.anyLong(), Mockito.anyMap()); } } diff --git a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/resource/VmwareResourceTest.java b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/resource/VmwareResourceTest.java index e47ec2411a1..da4273d0db6 100644 --- a/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/resource/VmwareResourceTest.java +++ b/plugins/hypervisors/vmware/src/test/java/com/cloud/hypervisor/vmware/resource/VmwareResourceTest.java @@ -19,14 +19,13 @@ package com.cloud.hypervisor.vmware.resource; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.eq; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -import static org.powermock.api.mockito.PowerMockito.whenNew; import java.util.ArrayList; import java.util.Arrays; @@ -37,19 +36,18 @@ import java.util.Map; import org.apache.cloudstack.storage.command.CopyCommand; import org.apache.cloudstack.storage.to.PrimaryDataStoreTO; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InOrder; import org.mockito.InjectMocks; -import org.mockito.Matchers; import org.mockito.Mock; +import org.mockito.MockedConstruction; import org.mockito.Mockito; import org.mockito.MockitoAnnotations; 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; import com.cloud.agent.api.Answer; import com.cloud.agent.api.Command; @@ -92,8 +90,7 @@ import com.vmware.vim25.VirtualDeviceConfigSpec; import com.vmware.vim25.VirtualMachineConfigSpec; import com.vmware.vim25.VirtualMachineVideoCard; -@RunWith(PowerMockRunner.class) -@PrepareForTest({CopyCommand.class}) +@RunWith(MockitoJUnitRunner.class) public class VmwareResourceTest { private static final String VOLUME_PATH = "XXXXXXXXXXXX"; @@ -187,10 +184,12 @@ public class VmwareResourceTest { private Map specsArray = new HashMap(); + AutoCloseable closeable; + @Before public void setup() throws Exception { - MockitoAnnotations.initMocks(this); - storageCmd = PowerMockito.mock(CopyCommand.class); + closeable = MockitoAnnotations.openMocks(this); + storageCmd = Mockito.mock(CopyCommand.class); doReturn(context).when(_resource).getServiceContext(null); when(cmd.getVirtualMachine()).thenReturn(vmSpec); @@ -218,19 +217,17 @@ public class VmwareResourceTest { when(hostCapability.isNestedHVSupported()).thenReturn(true); } + @After + public void tearDown() throws Exception { + closeable.close(); + } + //Test successful scaling up the vm @Test public void testScaleVMF1() throws Exception { when(_resource.getHyperHost(context, null)).thenReturn(hyperHost); doReturn("i-2-3-VM").when(cmd).getVmName(); when(hyperHost.findVmOnHyperHost("i-2-3-VM")).thenReturn(vmMo); - doReturn(536870912L).when(vmSpec).getMinRam(); - doReturn(1).when(vmSpec).getCpus(); - doReturn(1000).when(vmSpec).getMinSpeed(); - doReturn(1000).when(vmSpec).getMaxSpeed(); - doReturn(536870912L).when(vmSpec).getMaxRam(); - doReturn(false).when(vmSpec).getLimitCpuUse(); - when(vmMo.configureVm(vmConfigSpec)).thenReturn(true); _resource.execute(cmd); verify(_resource).execute(cmd); @@ -251,7 +248,7 @@ public class VmwareResourceTest { final NicTO[] nics = new NicTO[] {nicTo1, nicTo2}; String macSequence = _resource.generateMacSequence(nics); - assertEquals(macSequence, "02:00:65:b5:00:03|01:23:45:67:89:AB"); + assertEquals("02:00:65:b5:00:03|01:23:45:67:89:AB", macSequence); } @Test @@ -404,8 +401,8 @@ public class VmwareResourceTest { @Test public void checkStorageProcessorAndHandlerNfsVersionAttributeVersionNotSet(){ _resource.checkStorageProcessorAndHandlerNfsVersionAttribute(storageCmd); - verify(_resource).examineStorageSubSystemCommandNfsVersion(Matchers.eq(storageCmd), any(EnumMap.class)); - verify(_resource).examineStorageSubSystemCommandFullCloneFlagForVmware(Matchers.eq(storageCmd), any(EnumMap.class)); + verify(_resource).examineStorageSubSystemCommandNfsVersion(eq(storageCmd), any(EnumMap.class)); + verify(_resource).examineStorageSubSystemCommandFullCloneFlagForVmware(eq(storageCmd), any(EnumMap.class)); verify(_resource).reconfigureProcessorByHandler(any(EnumMap.class)); assertEquals(NFS_VERSION, _resource.storageNfsVersion); } @@ -415,24 +412,26 @@ public class VmwareResourceTest { public void checkStorageProcessorAndHandlerNfsVersionAttributeVersionSet(){ _resource.storageNfsVersion = NFS_VERSION; _resource.checkStorageProcessorAndHandlerNfsVersionAttribute(storageCmd); - verify(_resource, never()).examineStorageSubSystemCommandNfsVersion(Matchers.eq(storageCmd), any(EnumMap.class)); + verify(_resource, never()).examineStorageSubSystemCommandNfsVersion(eq(storageCmd), any(EnumMap.class)); } - @Test(expected= CloudRuntimeException.class) + @Test(expected=CloudRuntimeException.class) public void testFindVmOnDatacenterNullHyperHostReference() throws Exception { - when(hyperHost.getMor()).thenReturn(null); - _resource.findVmOnDatacenter(context, hyperHost, volume); + try (MockedConstruction ignored = Mockito.mockConstruction(DatacenterMO.class)) { + _resource.findVmOnDatacenter(context, hyperHost, volume); + } } @Test - @PrepareForTest({DatacenterMO.class, VmwareResource.class}) public void testFindVmOnDatacenter() throws Exception { when(hyperHost.getHyperHostDatacenter()).thenReturn(mor); - when(datacenter.getMor()).thenReturn(mor); - when(datacenter.findVm(VOLUME_PATH)).thenReturn(vmMo); - whenNew(DatacenterMO.class).withArguments(context, mor).thenReturn(datacenter); - VirtualMachineMO result = _resource.findVmOnDatacenter(context, hyperHost, volume); - assertEquals(vmMo, result); + try (MockedConstruction ignored = Mockito.mockConstruction(DatacenterMO.class, (mock, context) -> { + when(mock.findVm(VOLUME_PATH)).thenReturn(vmMo); + when(mock.getMor()).thenReturn(mor); + })) { + VirtualMachineMO result = _resource.findVmOnDatacenter(context, hyperHost, volume); + assertEquals(vmMo, result); + } } @Test diff --git a/plugins/hypervisors/vmware/src/test/java/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategyTest.java b/plugins/hypervisors/vmware/src/test/java/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategyTest.java index fa1137fb13b..35a8ffa3917 100644 --- a/plugins/hypervisors/vmware/src/test/java/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategyTest.java +++ b/plugins/hypervisors/vmware/src/test/java/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategyTest.java @@ -18,8 +18,8 @@ package org.apache.cloudstack.storage.motion; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.anyLong; -import static org.mockito.Matchers.isA; +import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; diff --git a/plugins/hypervisors/vmware/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/plugins/hypervisors/vmware/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker new file mode 100644 index 00000000000..1f0955d450f --- /dev/null +++ b/plugins/hypervisors/vmware/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker @@ -0,0 +1 @@ +mock-maker-inline diff --git a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/DatastoreMOTest.java b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/DatastoreMOTest.java index cf1697992f0..6e1793a6796 100644 --- a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/DatastoreMOTest.java +++ b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/DatastoreMOTest.java @@ -22,28 +22,24 @@ import com.cloud.hypervisor.vmware.util.VmwareContext; import com.vmware.vim25.FileInfo; import com.vmware.vim25.HostDatastoreBrowserSearchResults; import com.vmware.vim25.ManagedObjectReference; -import com.vmware.vim25.VimPortType; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; +import org.mockito.MockedConstruction; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; import java.util.ArrayList; import static org.junit.Assert.assertEquals; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.eq; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; -/** - * Created by sudharma_jain on 6/13/17. - */ -@RunWith(PowerMockRunner.class) -@PrepareForTest(DatastoreMO.class) + +@RunWith(MockitoJUnitRunner.class) public class DatastoreMOTest { @Mock VmwareContext _context ; @@ -51,22 +47,20 @@ public class DatastoreMOTest { VmwareClient _client; @Mock ManagedObjectReference _mor; - @Mock - HostDatastoreBrowserMO browserMo; - @Mock - VimPortType vimPortType; DatastoreMO datastoreMO ; String fileName = "ROOT-5.vmdk"; + MockedConstruction hostDataStoreBrowserMoConstruction; + @Before public void setUp() throws Exception { datastoreMO = new DatastoreMO(_context, _mor); - PowerMockito.whenNew(HostDatastoreBrowserMO.class).withAnyArguments().thenReturn(browserMo); when(_context.getVimClient()).thenReturn(_client); - when(_client.getDynamicProperty(any(ManagedObjectReference.class), eq("name"))).thenReturn("252d36c96cfb32f48ce7756ccb79ae37"); + when(_client.getDynamicProperty(any(ManagedObjectReference.class), eq("name"))).thenReturn( + "252d36c96cfb32f48ce7756ccb79ae37"); ArrayList results = new ArrayList<>(); @@ -92,23 +86,28 @@ public class DatastoreMOTest { results.add(r2); results.add(r3); - when(browserMo.searchDatastore(any(String.class), any(String.class), eq(true))).thenReturn(null); - when(browserMo.searchDatastoreSubFolders(any(String.class),any(String.class), any(Boolean.class) )).thenReturn(results); + hostDataStoreBrowserMoConstruction = Mockito.mockConstruction(HostDatastoreBrowserMO.class, (mock, context) -> { + when(mock.searchDatastore(any(String.class), any(String.class), eq(true))).thenReturn(null); + when(mock.searchDatastoreSubFolders(any(String.class),any(String.class), any(Boolean.class) )).thenReturn(results); + }); } @After public void tearDown() throws Exception { - + hostDataStoreBrowserMoConstruction.close(); } @Test public void testSearchFileInSubFolders() throws Exception { - assertEquals("Unexpected Behavior: search should exclude .snapshot folder", "[252d36c96cfb32f48ce7756ccb79ae37] i-2-5-VM/ROOT-5.vmdk", datastoreMO.searchFileInSubFolders(fileName, false, ".snapshot") ); + assertEquals("Unexpected Behavior: search should exclude .snapshot folder", + "[252d36c96cfb32f48ce7756ccb79ae37] i-2-5-VM/ROOT-5.vmdk", + datastoreMO.searchFileInSubFolders(fileName, false, ".snapshot")); } @Test public void testSearchFileInSubFoldersWithExcludeMultipleFolders() throws Exception { - assertEquals("Unexpected Behavior: search should exclude folders", datastoreMO.searchFileInSubFolders(fileName, false, "i-2-5-VM, .snapshot/hourly.2017-02-23_1705"), "[252d36c96cfb32f48ce7756ccb79ae37] .snapshot/hourly.2017-02-23_1605/i-2-5-VM/ROOT-5.vmdk" ); + assertEquals("Unexpected Behavior: search should exclude folders", + "[252d36c96cfb32f48ce7756ccb79ae37] .snapshot/hourly.2017-02-23_1605/i-2-5-VM/ROOT-5.vmdk", + datastoreMO.searchFileInSubFolders(fileName, false, "i-2-5-VM, .snapshot/hourly.2017-02-23_1705")); } - } diff --git a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/HostMOTest.java b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/HostMOTest.java index 74cd1425d73..5314f8f4f46 100644 --- a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/HostMOTest.java +++ b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/HostMOTest.java @@ -21,19 +21,16 @@ import com.cloud.hypervisor.vmware.util.VmwareClient; import com.cloud.hypervisor.vmware.util.VmwareContext; import com.vmware.vim25.GuestOsDescriptor; import com.vmware.vim25.ManagedObjectReference; -import com.vmware.vim25.VimPortType; -import com.vmware.vim25.VirtualMachineConfigOption; import org.junit.After; import org.junit.Assert; 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.MockitoAnnotations; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; +import org.mockito.junit.MockitoJUnitRunner; import java.util.ArrayList; import java.util.List; @@ -42,8 +39,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.when; -@RunWith(PowerMockRunner.class) -@PrepareForTest(HostMO.class) +@RunWith(MockitoJUnitRunner.class) public class HostMOTest { @Mock @@ -55,18 +51,17 @@ public class HostMOTest { @Mock ManagedObjectReference _environmentBrowser; - @Mock - VirtualMachineConfigOption vmConfigOption; - @Mock GuestOsDescriptor guestOsDescriptor; HostMO hostMO ; ClusterMO clusterMO ; + AutoCloseable closeable; + @Before public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); + closeable = MockitoAnnotations.openMocks(this); hostMO = new HostMO(_context, _mor); clusterMO = new ClusterMO(_context, _mor); clusterMO._environmentBrowser = _environmentBrowser; @@ -77,37 +72,26 @@ public class HostMOTest { @After public void tearDown() throws Exception { - + closeable.close(); } @Test public void testGetGuestOsDescriptors() throws Exception { - VimPortType vimPortType = PowerMockito.mock(VimPortType.class); - Mockito.when(_context.getService()).thenReturn(vimPortType); - Mockito.when(vimPortType.queryConfigOption(_environmentBrowser, null, null)).thenReturn(vmConfigOption); - PowerMockito.whenNew(ClusterMO.class).withArguments(_context, _mor).thenReturn(clusterMO); - List guestOsDescriptors = new ArrayList<>(); guestOsDescriptors.add(guestOsDescriptor); - Mockito.when(clusterMO.getGuestOsDescriptors()).thenReturn(guestOsDescriptors); - List result = hostMO.getGuestOsDescriptors(); - - Assert.assertEquals(guestOsDescriptor, result.get(0)); + try (MockedConstruction ignored = Mockito.mockConstruction(ClusterMO.class, + (mock, context) -> when(mock.getGuestOsDescriptors()).thenReturn(guestOsDescriptors))) { + List result = hostMO.getGuestOsDescriptors(); + Assert.assertEquals(guestOsDescriptor, result.get(0)); + } } @Test public void testGetGuestOsDescriptor() throws Exception { - VimPortType vimPortType = PowerMockito.mock(VimPortType.class); - Mockito.when(_context.getService()).thenReturn(vimPortType); - Mockito.when(vimPortType.queryConfigOption(_environmentBrowser, null, null)).thenReturn(vmConfigOption); - PowerMockito.whenNew(ClusterMO.class).withArguments(_context, _mor).thenReturn(clusterMO); - - Mockito.when(guestOsDescriptor.getId()).thenReturn("1"); - List guestOsDescriptors = new ArrayList<>(); - guestOsDescriptors.add(guestOsDescriptor); - Mockito.when(vmConfigOption.getGuestOSDescriptor()).thenReturn(guestOsDescriptors); - GuestOsDescriptor result = hostMO.getGuestOsDescriptor("1"); - - Assert.assertEquals(guestOsDescriptor, result); + try (MockedConstruction ignored = Mockito.mockConstruction(ClusterMO.class, + (mock, context) -> when(mock.getGuestOsDescriptor(any(String.class))).thenReturn(guestOsDescriptor))) { + GuestOsDescriptor result = hostMO.getGuestOsDescriptor("1"); + Assert.assertEquals(guestOsDescriptor, result); + } } } diff --git a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelperTest.java b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelperTest.java index ff4169df239..1c888a05748 100644 --- a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelperTest.java +++ b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelperTest.java @@ -20,10 +20,10 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyZeroInteractions; +import static org.mockito.Mockito.verifyNoInteractions; import static org.mockito.Mockito.when; import java.util.HashMap; @@ -85,9 +85,11 @@ public class HypervisorHostHelperTest { String prefix; String svlanId = null; + AutoCloseable closeable; + @Before public void setup() throws Exception { - MockitoAnnotations.initMocks(this); + closeable = MockitoAnnotations.openMocks(this); when(context.getServiceContent()).thenReturn(serviceContent); when(serviceContent.getAbout()).thenReturn(aboutInfo); when(clusterMO.getClusterConfigInfo()).thenReturn(clusterConfigInfo); @@ -102,12 +104,9 @@ public class HypervisorHostHelperTest { public static void tearDownAfterClass() throws Exception { } - @Before - public void setUp() throws Exception { - } - @After public void tearDown() throws Exception { + closeable.close(); } @Test @@ -129,8 +128,8 @@ public class HypervisorHostHelperTest { @Test public void testGetVcenterApiVersionWithNullContextObject() throws Exception { assertNull(HypervisorHostHelper.getVcenterApiVersion(null)); - verifyZeroInteractions(aboutInfo); - verifyZeroInteractions(serviceContent); + verifyNoInteractions(aboutInfo); + verifyNoInteractions(serviceContent); } @Test diff --git a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMOTest.java b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMOTest.java index 7d07a9026ac..570f2a7b4a1 100644 --- a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMOTest.java +++ b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/mo/VirtualMachineMOTest.java @@ -35,13 +35,13 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.junit.MockitoJUnitRunner; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.fail; -import static org.mockito.Matchers.any; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) @@ -56,12 +56,14 @@ public class VirtualMachineMOTest { VirtualMachineMO vmMo; + AutoCloseable closeable; + private List getVirtualScSiDeviceList(Class cls) { List deviceList = new ArrayList<>(); try { - VirtualSCSIController scsiController = (VirtualSCSIController)cls.newInstance(); + VirtualSCSIController scsiController = (VirtualSCSIController)cls.getDeclaredConstructor().newInstance(); scsiController.setSharedBus(VirtualSCSISharing.NO_SHARING); scsiController.setBusNumber(0); scsiController.setKey(1); @@ -76,7 +78,7 @@ public class VirtualMachineMOTest { @Before public void setup() { - MockitoAnnotations.initMocks(this); + closeable = MockitoAnnotations.openMocks(this); vmMo = new VirtualMachineMO(context, mor); when(context.getVimClient()).thenReturn(client); } @@ -89,12 +91,9 @@ public class VirtualMachineMOTest { public static void tearDownAfterClass() throws Exception { } - @Before - public void setUp() throws Exception { - } - @After public void tearDown() throws Exception { + closeable.close(); } @Test diff --git a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/util/VmwareContextTest.java b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/util/VmwareContextTest.java index 732d45cf2c3..6e48806fe50 100644 --- a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/util/VmwareContextTest.java +++ b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/util/VmwareContextTest.java @@ -26,7 +26,7 @@ import java.net.HttpURLConnection; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.junit.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) public class VmwareContextTest { @@ -42,6 +42,9 @@ public class VmwareContextTest { Mockito.doReturn(conn).when(vmwareContext).getHTTPConnection("http://example.com", "PUT"); //This method should not throw any exception. Ref: CLOUDSTACK-8669 vmwareContext.uploadResourceContent("http://example.com", "content".getBytes()); + Mockito.verify(vmwareContext, Mockito.times(1)).getHTTPConnection("http://example.com", "PUT"); + Mockito.verify(conn, Mockito.times(1)).getOutputStream(); + Mockito.verify(conn, Mockito.times(1)).getInputStream(); } } diff --git a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/util/VmwareHelperTest.java b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/util/VmwareHelperTest.java index 4417748efbf..1376fdd0ab9 100644 --- a/vmware-base/src/test/java/com/cloud/hypervisor/vmware/util/VmwareHelperTest.java +++ b/vmware-base/src/test/java/com/cloud/hypervisor/vmware/util/VmwareHelperTest.java @@ -18,6 +18,7 @@ package com.cloud.hypervisor.vmware.util; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; import org.junit.Test; import org.junit.runner.RunWith; @@ -37,7 +38,7 @@ public class VmwareHelperTest { public void prepareDiskDeviceTestNotLimitingIOPS() throws Exception { Mockito.when(virtualMachineMO.getIDEDeviceControllerKey()).thenReturn(1); VirtualDisk virtualDisk = (VirtualDisk) VmwareHelper.prepareDiskDevice(virtualMachineMO, null, -1, new String[1], null, 0, 0, null); - assertEquals(null, virtualDisk.getStorageIOAllocation()); + assertNull(virtualDisk.getStorageIOAllocation()); } @Test @@ -51,6 +52,6 @@ public class VmwareHelperTest { public void prepareDiskDeviceTestLimitingIOPSToZero() throws Exception { Mockito.when(virtualMachineMO.getIDEDeviceControllerKey()).thenReturn(1); VirtualDisk virtualDisk = (VirtualDisk) VmwareHelper.prepareDiskDevice(virtualMachineMO, null, -1, new String[1], null, 0, 0, Long.valueOf(0)); - assertEquals(null, virtualDisk.getStorageIOAllocation()); + assertNull(virtualDisk.getStorageIOAllocation()); } } diff --git a/vmware-base/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/vmware-base/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker new file mode 100644 index 00000000000..1f0955d450f --- /dev/null +++ b/vmware-base/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker @@ -0,0 +1 @@ +mock-maker-inline