This is an automated email from the ASF dual-hosted git repository.

dahn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/main by this push:
     new 27b0a64b400 Fix scaleio tests (#7622)
27b0a64b400 is described below

commit 27b0a64b40098beb30f59b341d56d9a77759eb33
Author: Vishesh <[email protected]>
AuthorDate: Thu Jun 15 15:23:10 2023 +0530

    Fix scaleio tests (#7622)
    
    Co-authored-by: Wei Zhou <[email protected]>
---
 plugins/storage/volume/scaleio/pom.xml             |  3 --
 .../client/ScaleIOGatewayClientImplTest.java       |  4 +-
 .../ScaleIOPrimaryDataStoreLifeCycleTest.java      | 52 +++++++---------------
 .../org.mockito.plugins.MockMaker                  |  1 +
 pom.xml                                            |  2 +-
 .../org.mockito.plugins.MockMaker                  |  2 +-
 6 files changed, 20 insertions(+), 44 deletions(-)

diff --git a/plugins/storage/volume/scaleio/pom.xml 
b/plugins/storage/volume/scaleio/pom.xml
index 17740b54fd1..390d11b0637 100644
--- a/plugins/storage/volume/scaleio/pom.xml
+++ b/plugins/storage/volume/scaleio/pom.xml
@@ -44,9 +44,6 @@
         <plugins>
             <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <skipTests>true</skipTests>
-                </configuration>
                 <executions>
                     <execution>
                         <phase>integration-test</phase>
diff --git 
a/plugins/storage/volume/scaleio/src/test/java/org/apache/cloudstack/storage/datastore/client/ScaleIOGatewayClientImplTest.java
 
b/plugins/storage/volume/scaleio/src/test/java/org/apache/cloudstack/storage/datastore/client/ScaleIOGatewayClientImplTest.java
index 577b918a4d8..cf624c26680 100644
--- 
a/plugins/storage/volume/scaleio/src/test/java/org/apache/cloudstack/storage/datastore/client/ScaleIOGatewayClientImplTest.java
+++ 
b/plugins/storage/volume/scaleio/src/test/java/org/apache/cloudstack/storage/datastore/client/ScaleIOGatewayClientImplTest.java
@@ -48,7 +48,7 @@ import com.github.tomakehurst.wiremock.junit.WireMockRule;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ScaleIOGatewayClientImplTest {
-    private final int port = 443;
+    private final int port = 8443;
     private final int timeout = 30;
     private final int maxConnections = 50;
     private final String username = "admin";
@@ -70,7 +70,7 @@ public class ScaleIOGatewayClientImplTest {
                         .withHeader("content-type", 
"application/json;charset=UTF-8")
                         .withBody(sessionKey)));
 
-        client = new ScaleIOGatewayClientImpl("https://localhost/api";, 
username, password, false, timeout, maxConnections);
+        client = new 
ScaleIOGatewayClientImpl(String.format("https://localhost:%d/api";, port), 
username, password, false, timeout, maxConnections);
 
         wireMockRule.stubFor(post("/api/types/Volume/instances")
                 .willReturn(aResponse()
diff --git 
a/plugins/storage/volume/scaleio/src/test/java/org/apache/cloudstack/storage/datastore/lifecycle/ScaleIOPrimaryDataStoreLifeCycleTest.java
 
b/plugins/storage/volume/scaleio/src/test/java/org/apache/cloudstack/storage/datastore/lifecycle/ScaleIOPrimaryDataStoreLifeCycleTest.java
index 6cc7b874557..17d0c9b9edf 100644
--- 
a/plugins/storage/volume/scaleio/src/test/java/org/apache/cloudstack/storage/datastore/lifecycle/ScaleIOPrimaryDataStoreLifeCycleTest.java
+++ 
b/plugins/storage/volume/scaleio/src/test/java/org/apache/cloudstack/storage/datastore/lifecycle/ScaleIOPrimaryDataStoreLifeCycleTest.java
@@ -24,8 +24,7 @@ import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.when;
 import static org.mockito.MockitoAnnotations.initMocks;
 
@@ -40,13 +39,11 @@ import 
org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManag
 import 
org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
 import org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStore;
 import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
-import org.apache.cloudstack.storage.datastore.client.ScaleIOGatewayClient;
 import 
org.apache.cloudstack.storage.datastore.client.ScaleIOGatewayClientConnectionPool;
 import org.apache.cloudstack.storage.datastore.client.ScaleIOGatewayClientImpl;
 import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao;
 import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.apache.cloudstack.storage.datastore.provider.ScaleIOHostListener;
 import org.apache.cloudstack.storage.datastore.util.ScaleIOUtil;
 import org.apache.cloudstack.storage.volume.datastore.PrimaryDataStoreHelper;
 import org.junit.Before;
@@ -54,19 +51,14 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
+import org.mockito.MockedStatic;
 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;
 
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.ModifyStoragePoolAnswer;
-import com.cloud.agent.api.ModifyStoragePoolCommand;
 import com.cloud.host.Host;
 import com.cloud.host.HostVO;
 import com.cloud.host.Status;
-import com.cloud.host.dao.HostDao;
 import com.cloud.hypervisor.Hypervisor;
 import com.cloud.resource.ResourceManager;
 import com.cloud.resource.ResourceState;
@@ -80,9 +72,9 @@ import com.cloud.storage.VMTemplateStoragePoolVO;
 import com.cloud.storage.dao.StoragePoolHostDao;
 import com.cloud.template.TemplateManager;
 import com.cloud.utils.exception.CloudRuntimeException;
+import org.springframework.test.util.ReflectionTestUtils;
 
-@PrepareForTest(ScaleIOGatewayClient.class)
-@RunWith(PowerMockRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class ScaleIOPrimaryDataStoreLifeCycleTest {
 
     @Mock
@@ -96,8 +88,6 @@ public class ScaleIOPrimaryDataStoreLifeCycleTest {
     @Mock
     private StoragePoolAutomation storagePoolAutomation;
     @Mock
-    private HostDao hostDao;
-    @Mock
     private StoragePoolHostDao storagePoolHostDao;
     @Mock
     private DataStoreProviderManager dataStoreProviderMgr;
@@ -109,18 +99,12 @@ public class ScaleIOPrimaryDataStoreLifeCycleTest {
     private PrimaryDataStore store;
     @Mock
     private TemplateManager templateMgr;
-    @Mock
-    private AgentManager agentMgr;
-    @Mock
-    ModifyStoragePoolAnswer answer;
 
-    @Spy
     @InjectMocks
     private StorageManager storageMgr = new StorageManagerImpl();
 
     @Spy
-    @InjectMocks
-    private HypervisorHostListener hostListener = new ScaleIOHostListener();
+    private HypervisorHostListener hostListener;
 
     @InjectMocks
     private ScaleIOPrimaryDataStoreLifeCycle 
scaleIOPrimaryDataStoreLifeCycleTest;
@@ -128,6 +112,7 @@ public class ScaleIOPrimaryDataStoreLifeCycleTest {
     @Before
     public void setUp() {
         initMocks(this);
+        ReflectionTestUtils.setField(scaleIOPrimaryDataStoreLifeCycleTest, 
"storageMgr", storageMgr);
     }
 
     @Test
@@ -135,9 +120,11 @@ public class ScaleIOPrimaryDataStoreLifeCycleTest {
         final DataStore dataStore = mock(DataStore.class);
         when(dataStore.getId()).thenReturn(1L);
 
-        PowerMockito.mockStatic(ScaleIOGatewayClient.class);
+        MockedStatic<ScaleIOGatewayClientConnectionPool> 
scaleIOGatewayClientConnectionPoolMocked = 
mockStatic(ScaleIOGatewayClientConnectionPool.class);
         ScaleIOGatewayClientImpl client = mock(ScaleIOGatewayClientImpl.class);
-        when(ScaleIOGatewayClientConnectionPool.getInstance().getClient(1L, 
storagePoolDetailsDao)).thenReturn(client);
+        ScaleIOGatewayClientConnectionPool pool = 
mock(ScaleIOGatewayClientConnectionPool.class);
+        scaleIOGatewayClientConnectionPoolMocked.when(() -> 
ScaleIOGatewayClientConnectionPool.getInstance()).thenReturn(pool);
+        when(pool.getClient(1L, storagePoolDetailsDao)).thenReturn(client);
 
         when(client.haveConnectedSdcs()).thenReturn(true);
 
@@ -157,28 +144,19 @@ public class ScaleIOPrimaryDataStoreLifeCycleTest {
 
         when(dataStoreMgr.getDataStore(anyLong(), 
eq(DataStoreRole.Primary))).thenReturn(store);
         when(store.getId()).thenReturn(1L);
-        
when(store.getPoolType()).thenReturn(Storage.StoragePoolType.PowerFlex);
         when(store.isShared()).thenReturn(true);
         when(store.getName()).thenReturn("ScaleIOPool");
         
when(store.getStorageProviderName()).thenReturn(ScaleIOUtil.PROVIDER_NAME);
 
         
when(dataStoreProviderMgr.getDataStoreProvider(ScaleIOUtil.PROVIDER_NAME)).thenReturn(dataStoreProvider);
         
when(dataStoreProvider.getName()).thenReturn(ScaleIOUtil.PROVIDER_NAME);
+        when(hostListener.hostConnect(Mockito.anyLong(), 
Mockito.anyLong())).thenReturn(true);
         storageMgr.registerHostListener(ScaleIOUtil.PROVIDER_NAME, 
hostListener);
 
-        when(agentMgr.easySend(anyLong(), 
Mockito.any(ModifyStoragePoolCommand.class))).thenReturn(answer);
-        when(answer.getResult()).thenReturn(true);
-
-        when(storagePoolHostDao.findByPoolHost(anyLong(), 
anyLong())).thenReturn(null);
-
-        when(hostDao.findById(1L)).thenReturn(host1);
-        when(hostDao.findById(2L)).thenReturn(host2);
-
         
when(dataStoreHelper.attachZone(Mockito.any(DataStore.class))).thenReturn(null);
 
-        scaleIOPrimaryDataStoreLifeCycleTest.attachZone(dataStore, scope, 
Hypervisor.HypervisorType.KVM);
-        
verify(storageMgr,times(2)).connectHostToSharedPool(Mockito.any(Long.class), 
Mockito.any(Long.class));
-        
verify(storagePoolHostDao,times(2)).persist(Mockito.any(StoragePoolHostVO.class));
+        boolean result = 
scaleIOPrimaryDataStoreLifeCycleTest.attachZone(dataStore, scope, 
Hypervisor.HypervisorType.KVM);
+        assertThat(result).isTrue();
     }
 
     @Test(expected = CloudRuntimeException.class)
@@ -224,7 +202,6 @@ public class ScaleIOPrimaryDataStoreLifeCycleTest {
     public void testDeleteDataStoreWithStoragePoolNull() {
         final PrimaryDataStore store = mock(PrimaryDataStore.class);
         when(primaryDataStoreDao.findById(anyLong())).thenReturn(null);
-        
when(dataStoreHelper.deletePrimaryDataStore(any(DataStore.class))).thenReturn(true);
         final boolean result = 
scaleIOPrimaryDataStoreLifeCycleTest.deleteDataStore(store);
         assertThat(result).isFalse();
     }
@@ -233,6 +210,7 @@ public class ScaleIOPrimaryDataStoreLifeCycleTest {
     public void testDeleteDataStore() {
         final PrimaryDataStore store = mock(PrimaryDataStore.class);
         final StoragePoolVO storagePoolVO = mock(StoragePoolVO.class);
+        when(store.getId()).thenReturn(1L);
         
when(primaryDataStoreDao.findById(anyLong())).thenReturn(storagePoolVO);
         List<VMTemplateStoragePoolVO> unusedTemplates = new ArrayList<>();
         
when(templateMgr.getUnusedTemplatesInPool(storagePoolVO)).thenReturn(unusedTemplates);
diff --git 
a/plugins/storage/volume/scaleio/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
 
b/plugins/storage/volume/scaleio/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 00000000000..1f0955d450f
--- /dev/null
+++ 
b/plugins/storage/volume/scaleio/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
@@ -0,0 +1 @@
+mock-maker-inline
diff --git a/pom.xml b/pom.xml
index 2497dee7e0a..7aa0724000f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1062,7 +1062,7 @@
                             <exclude>ui/public/**</exclude>
                             <exclude>ui/legacy/**</exclude>
                             <exclude>utils/testsmallfileinactive</exclude>
-                            
<exclude>utils/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker</exclude>
+                            
<exclude>**/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker</exclude>
                         </excludes>
                     </configuration>
                 </plugin>
diff --git 
a/utils/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker 
b/utils/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
index ca6ee9cea8e..1f0955d450f 100644
--- a/utils/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
+++ b/utils/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
@@ -1 +1 @@
-mock-maker-inline
\ No newline at end of file
+mock-maker-inline

Reply via email to