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 84277e783b5 remove powermock from engine (#7975)
84277e783b5 is described below

commit 84277e783b59d539ab67bb3d3c9ab772da062804
Author: Vishesh <[email protected]>
AuthorDate: Wed Sep 20 13:41:28 2023 +0530

    remove powermock from engine (#7975)
---
 .../as/dao/AutoScaleVmGroupDaoImplTest.java        | 19 ++++----
 .../dao/AutoScaleVmGroupStatisticsDaoImplTest.java | 31 ++++++------
 .../as/dao/AutoScaleVmGroupVmMapDaoImplTest.java   | 27 +++++-----
 .../com/cloud/network/dao/NetworkDaoImplTest.java  | 35 +++++++------
 .../storage/dao/StoragePoolTagsDaoImplTest.java    |  4 +-
 .../java/com/cloud/upgrade/GuestOsMapperTest.java  | 16 ++++--
 .../upgrade/dao/DatabaseAccessObjectTest.java      | 18 ++++---
 .../com/cloud/upgrade/dao/DbUpgradeUtilsTest.java  | 14 +++---
 .../cloud/usage/dao/UsageStorageDaoImplTest.java   | 46 ++++++++---------
 .../datastore/db/PrimaryDataStoreDaoImplTest.java  | 15 +++---
 .../org.mockito.plugins.MockMaker                  |  1 +
 .../motion/AncientDataMotionStrategyTest.java      | 12 ++---
 .../snapshot/SnapshotDataFactoryImplTest.java      | 57 ++++++++++------------
 .../storage/snapshot/SnapshotServiceImplTest.java  | 30 ++++--------
 .../vmsnapshot/VMSnapshotStrategyKVMTest.java      |  3 --
 .../org.mockito.plugins.MockMaker                  |  1 +
 .../java/com/cloud/utils/db/GenericDaoBase.java    |  2 +-
 17 files changed, 158 insertions(+), 173 deletions(-)

diff --git 
a/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupDaoImplTest.java
 
b/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupDaoImplTest.java
index bcfcdf9868c..5b3f5eb5ffe 100644
--- 
a/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupDaoImplTest.java
+++ 
b/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupDaoImplTest.java
@@ -31,12 +31,11 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.Spy;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.modules.junit4.PowerMockRunner;
+import org.mockito.junit.MockitoJUnitRunner;
 
 import java.util.List;
 
-@RunWith(PowerMockRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class AutoScaleVmGroupDaoImplTest {
 
     @Mock
@@ -52,7 +51,7 @@ public class AutoScaleVmGroupDaoImplTest {
     AutoScaleVmGroupVO autoScaleVmGroupVOMock;
 
     @Spy
-    AutoScaleVmGroupDaoImpl AutoScaleVmGroupDaoImplSpy = PowerMockito.spy(new 
AutoScaleVmGroupDaoImpl());
+    AutoScaleVmGroupDaoImpl AutoScaleVmGroupDaoImplSpy;
 
     @Before
     public void setUp() {
@@ -63,7 +62,7 @@ public class AutoScaleVmGroupDaoImplTest {
     @Test
     public void testListByLoadBalancer() throws Exception {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(listAutoScaleVmGroupVOMock).when(AutoScaleVmGroupDaoImplSpy,
 "listBy", Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(listAutoScaleVmGroupVOMock).when(AutoScaleVmGroupDaoImplSpy).listBy(Mockito.any(SearchCriteria.class));
 
         long loadBalancerId = 100L;
 
@@ -77,7 +76,7 @@ public class AutoScaleVmGroupDaoImplTest {
     @Test
     public void testListByProfile() throws Exception {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(listAutoScaleVmGroupVOMock).when(AutoScaleVmGroupDaoImplSpy,
 "listBy", Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(listAutoScaleVmGroupVOMock).when(AutoScaleVmGroupDaoImplSpy).listBy(Mockito.any(SearchCriteria.class));
 
         long profileId = 101L;
 
@@ -91,7 +90,7 @@ public class AutoScaleVmGroupDaoImplTest {
     @Test
     public void testListByAccount() throws Exception {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(listAutoScaleVmGroupVOMock).when(AutoScaleVmGroupDaoImplSpy,
 "listBy", Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(listAutoScaleVmGroupVOMock).when(AutoScaleVmGroupDaoImplSpy).listBy(Mockito.any(SearchCriteria.class));
 
         long accountId = 102L;
 
@@ -105,7 +104,7 @@ public class AutoScaleVmGroupDaoImplTest {
     @Test
     public void testUpdateState1() throws Exception {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        PowerMockito.doReturn(null).when(AutoScaleVmGroupDaoImplSpy, 
"findOneBy", Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(null).when(AutoScaleVmGroupDaoImplSpy).findOneBy(Mockito.any(SearchCriteria.class));
 
         long groupId = 10L;
         AutoScaleVmGroup.State oldState = AutoScaleVmGroup.State.ENABLED;
@@ -118,9 +117,9 @@ public class AutoScaleVmGroupDaoImplTest {
     @Test
     public void testUpdateState2() throws Exception {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(autoScaleVmGroupVOMock).when(AutoScaleVmGroupDaoImplSpy, 
"findOneBy", Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(autoScaleVmGroupVOMock).when(AutoScaleVmGroupDaoImplSpy).findOneBy(Mockito.any(SearchCriteria.class));
         
Mockito.doNothing().when(autoScaleVmGroupVOMock).setState(Mockito.any(AutoScaleVmGroup.State.class));
-        
PowerMockito.doReturn(true).when(AutoScaleVmGroupDaoImplSpy).update(Mockito.anyLong(),
 Mockito.any(AutoScaleVmGroupVO.class));
+        
Mockito.doReturn(true).when(AutoScaleVmGroupDaoImplSpy).update(Mockito.anyLong(),
 Mockito.any(AutoScaleVmGroupVO.class));
 
         long groupId = 10L;
         AutoScaleVmGroup.State oldState = AutoScaleVmGroup.State.ENABLED;
diff --git 
a/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupStatisticsDaoImplTest.java
 
b/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupStatisticsDaoImplTest.java
index 965abac1164..604e90252f5 100644
--- 
a/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupStatisticsDaoImplTest.java
+++ 
b/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupStatisticsDaoImplTest.java
@@ -28,15 +28,16 @@ import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.modules.junit4.PowerMockRunner;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
 
 import java.util.Date;
 import java.util.List;
 
-@RunWith(PowerMockRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class AutoScaleVmGroupStatisticsDaoImplTest {
 
     @Mock
@@ -48,7 +49,9 @@ public class AutoScaleVmGroupStatisticsDaoImplTest {
     @Mock
     List<AutoScaleVmGroupStatisticsVO> listAutoScaleVmGroupStatisticsVOMock;
 
-    AutoScaleVmGroupStatisticsDaoImpl AutoScaleVmGroupStatisticsDaoImplSpy = 
PowerMockito.spy(new AutoScaleVmGroupStatisticsDaoImpl());
+    @Spy
+    @InjectMocks
+    AutoScaleVmGroupStatisticsDaoImpl AutoScaleVmGroupStatisticsDaoImplSpy;
 
     long groupId = 4L;
     long policyId = 5L;
@@ -60,20 +63,20 @@ public class AutoScaleVmGroupStatisticsDaoImplTest {
     @Before
     public void setUp() throws Exception {
         AutoScaleVmGroupStatisticsDaoImplSpy.groupAndCounterSearch = 
searchBuilderAutoScaleVmGroupStatisticsVOMock;
-        
PowerMockito.doReturn(searchBuilderAutoScaleVmGroupStatisticsVOMock).when(AutoScaleVmGroupStatisticsDaoImplSpy).createSearchBuilder();
+        
Mockito.doReturn(searchBuilderAutoScaleVmGroupStatisticsVOMock).when(AutoScaleVmGroupStatisticsDaoImplSpy).createSearchBuilder();
         
Mockito.doReturn(searchCriteriaAutoScaleVmGroupStatisticsVOMock).when(searchBuilderAutoScaleVmGroupStatisticsVOMock).create();
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupStatisticsVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
 
-        
PowerMockito.doReturn(listAutoScaleVmGroupStatisticsVOMock).when(AutoScaleVmGroupStatisticsDaoImplSpy,
 "listBy", Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(listAutoScaleVmGroupStatisticsVOMock).when(AutoScaleVmGroupStatisticsDaoImplSpy).listBy(Mockito.any(SearchCriteria.class));
 
-        
PowerMockito.doReturn(autoScaleVmGroupStatisticsVO).when(AutoScaleVmGroupStatisticsDaoImplSpy).createForUpdate();
-        
PowerMockito.doReturn(1).when(AutoScaleVmGroupStatisticsDaoImplSpy).update(Mockito.any(AutoScaleVmGroupStatisticsVO.class),
 Mockito.any(SearchCriteria.class));
-        
PowerMockito.doReturn(autoScaleVmGroupStatisticsVO).when(AutoScaleVmGroupStatisticsDaoImplSpy).persist(Mockito.any(AutoScaleVmGroupStatisticsVO.class));
+        
Mockito.doReturn(autoScaleVmGroupStatisticsVO).when(AutoScaleVmGroupStatisticsDaoImplSpy).createForUpdate();
+        
Mockito.doReturn(1).when(AutoScaleVmGroupStatisticsDaoImplSpy).update(Mockito.any(AutoScaleVmGroupStatisticsVO.class),
 Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(autoScaleVmGroupStatisticsVO).when(AutoScaleVmGroupStatisticsDaoImplSpy).persist(Mockito.any(AutoScaleVmGroupStatisticsVO.class));
     }
 
     @Test
     public void testRemoveByGroupId1() {
-        
PowerMockito.doReturn(2).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(2).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
         boolean result = 
AutoScaleVmGroupStatisticsDaoImplSpy.removeByGroupId(groupId);
         Assert.assertTrue(result);
         
Mockito.verify(searchCriteriaAutoScaleVmGroupStatisticsVOMock).setParameters("vmGroupId",
 groupId);
@@ -81,7 +84,7 @@ public class AutoScaleVmGroupStatisticsDaoImplTest {
 
     @Test
     public void testRemoveByGroupId2() {
-        
PowerMockito.doReturn(-1).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(-1).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
         boolean result = 
AutoScaleVmGroupStatisticsDaoImplSpy.removeByGroupId(groupId);
         Assert.assertFalse(result);
         
Mockito.verify(searchCriteriaAutoScaleVmGroupStatisticsVOMock).setParameters("vmGroupId",
 groupId);
@@ -90,7 +93,7 @@ public class AutoScaleVmGroupStatisticsDaoImplTest {
 
     @Test
     public void testRemoveByGroupId3() {
-        
PowerMockito.doReturn(-1).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(-1).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
         boolean result = 
AutoScaleVmGroupStatisticsDaoImplSpy.removeByGroupId(groupId, date);
         Assert.assertFalse(result);
         
Mockito.verify(searchCriteriaAutoScaleVmGroupStatisticsVOMock).setParameters("vmGroupId",
 groupId);
@@ -100,7 +103,7 @@ public class AutoScaleVmGroupStatisticsDaoImplTest {
 
     @Test
     public void testRemoveByGroupAndPolicy1() {
-        
PowerMockito.doReturn(2).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(2).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
 
         boolean result = 
AutoScaleVmGroupStatisticsDaoImplSpy.removeByGroupAndPolicy(groupId, policyId, 
null);
 
@@ -113,7 +116,7 @@ public class AutoScaleVmGroupStatisticsDaoImplTest {
 
     @Test
     public void testRemoveByGroupAndPolicy2() {
-        
PowerMockito.doReturn(-1).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(-1).when(AutoScaleVmGroupStatisticsDaoImplSpy).expunge(Mockito.any(SearchCriteria.class));
 
         boolean result = 
AutoScaleVmGroupStatisticsDaoImplSpy.removeByGroupAndPolicy(groupId, policyId, 
date);
 
diff --git 
a/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImplTest.java
 
b/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImplTest.java
index 2dde1008e6b..e13ad42ec80 100644
--- 
a/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImplTest.java
+++ 
b/engine/schema/src/test/java/com/cloud/network/as/dao/AutoScaleVmGroupVmMapDaoImplTest.java
@@ -32,13 +32,12 @@ import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.Spy;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.modules.junit4.PowerMockRunner;
+import org.mockito.junit.MockitoJUnitRunner;
 
 import java.util.Arrays;
 import java.util.List;
 
-@RunWith(PowerMockRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class AutoScaleVmGroupVmMapDaoImplTest {
 
     @Mock
@@ -57,7 +56,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
     SearchCriteria<Integer> searchCriteriaCountAvailableVmsByGroup;
 
     @Spy
-    AutoScaleVmGroupVmMapDaoImpl AutoScaleVmGroupVmMapDaoImplSpy = 
PowerMockito.spy(new AutoScaleVmGroupVmMapDaoImpl());
+    AutoScaleVmGroupVmMapDaoImpl AutoScaleVmGroupVmMapDaoImplSpy;
 
     @Before
     public void setUp() {
@@ -69,9 +68,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
 
     @Test
     public void testCountAvailableVmsByGroup() throws Exception {
-        
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setJoinParameters(Mockito.anyString(),
 Mockito.anyString(), Mockito.any());
-        
PowerMockito.doReturn(Arrays.asList(5)).when(AutoScaleVmGroupVmMapDaoImplSpy).customSearch(Mockito.any(SearchCriteria.class),
 Mockito.eq(null));
+        
Mockito.doReturn(Arrays.asList(5)).when(AutoScaleVmGroupVmMapDaoImplSpy).customSearch(Mockito.any(SearchCriteria.class),
 Mockito.eq(null));
 
         long groupId = 4L;
 
@@ -86,7 +83,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
     @Test
     public void testCountByGroup() throws Exception {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        PowerMockito.doReturn(6).when(AutoScaleVmGroupVmMapDaoImplSpy, 
"getCountIncludingRemoved", Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(6).when(AutoScaleVmGroupVmMapDaoImplSpy).getCountIncludingRemoved(Mockito.any(SearchCriteria.class));
 
         long groupId = 4L;
 
@@ -100,7 +97,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
     @Test
     public void testListByGroup() throws Exception {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(listAutoScaleVmGroupVmMapVOMock).when(AutoScaleVmGroupVmMapDaoImplSpy,
 "listBy", Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(listAutoScaleVmGroupVmMapVOMock).when(AutoScaleVmGroupVmMapDaoImplSpy).listBy(Mockito.any(SearchCriteria.class));
 
         long groupId = 4L;
 
@@ -114,7 +111,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
     @Test
     public void testListByVm() throws Exception {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(listAutoScaleVmGroupVmMapVOMock).when(AutoScaleVmGroupVmMapDaoImplSpy,
 "listBy", Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(listAutoScaleVmGroupVmMapVOMock).when(AutoScaleVmGroupVmMapDaoImplSpy).listBy(Mockito.any(SearchCriteria.class));
 
         long vmId = 100L;
 
@@ -128,7 +125,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
     @Test
     public void testRemoveByVm() {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(2).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(2).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
 
         long vmId = 3L;
 
@@ -143,7 +140,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
     @Test
     public void testRemoveByGroup() {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(2).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(2).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
 
         long groupId = 4L;
 
@@ -158,7 +155,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
     @Test
     public void testRemoveByGroupAndVm() {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(2).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(2).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
 
         long vmId = 3L;
         long groupId = 4L;
@@ -175,7 +172,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
     @Test
     public void testRemoveByVmFailed() {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(-1).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(-1).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
 
         long vmId = 3L;
 
@@ -190,7 +187,7 @@ public class AutoScaleVmGroupVmMapDaoImplTest {
     @Test
     public void testRemoveByGroupFailed() {
         
Mockito.doNothing().when(searchCriteriaAutoScaleVmGroupVmMapVOMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        
PowerMockito.doReturn(-1).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
+        
Mockito.doReturn(-1).when(AutoScaleVmGroupVmMapDaoImplSpy).remove(Mockito.any(SearchCriteria.class));
 
         long groupId = 4L;
 
diff --git 
a/engine/schema/src/test/java/com/cloud/network/dao/NetworkDaoImplTest.java 
b/engine/schema/src/test/java/com/cloud/network/dao/NetworkDaoImplTest.java
index e773ff9850d..ab5f4352105 100644
--- a/engine/schema/src/test/java/com/cloud/network/dao/NetworkDaoImplTest.java
+++ b/engine/schema/src/test/java/com/cloud/network/dao/NetworkDaoImplTest.java
@@ -22,17 +22,18 @@ package com.cloud.network.dao;
 import com.cloud.network.Networks;
 import com.cloud.utils.db.SearchBuilder;
 import com.cloud.utils.db.SearchCriteria;
+import com.cloud.utils.db.TransactionLegacy;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.modules.junit4.PowerMockRunner;
+import org.mockito.junit.MockitoJUnitRunner;
+
 
 import java.util.List;
 
-@RunWith(PowerMockRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class NetworkDaoImplTest {
 
     @Mock
@@ -46,21 +47,25 @@ public class NetworkDaoImplTest {
 
     @Test
     public void listByPhysicalNetworkTrafficTypeTestSetParametersValidation() 
throws Exception {
-        NetworkDaoImpl networkDaoImplSpy = PowerMockito.spy(new 
NetworkDaoImpl());
+        NetworkDaoImpl networkDaoImplSpy = Mockito.spy(NetworkDaoImpl.class);
+        TransactionLegacy txn = 
TransactionLegacy.open("runNetworkDaoImplTest");
+        try {
+            networkDaoImplSpy.AllFieldsSearch = searchBuilderNetworkVoMock;
+            
Mockito.doReturn(searchCriteriaNetworkVoMock).when(searchBuilderNetworkVoMock).create();
+            
Mockito.doNothing().when(searchCriteriaNetworkVoMock).setParameters(Mockito.anyString(),
 Mockito.any());
+            
Mockito.doReturn(listNetworkVoMock).when(networkDaoImplSpy).listBy(Mockito.any(SearchCriteria.class));
 
-        networkDaoImplSpy.AllFieldsSearch = searchBuilderNetworkVoMock;
-        
Mockito.doReturn(searchCriteriaNetworkVoMock).when(searchBuilderNetworkVoMock).create();
-        
Mockito.doNothing().when(searchCriteriaNetworkVoMock).setParameters(Mockito.anyString(),
 Mockito.any());
-        PowerMockito.doReturn(listNetworkVoMock).when(networkDaoImplSpy, 
"listBy", Mockito.any(SearchCriteria.class));
+            long expectedPhysicalNetwork = 2513l;
 
-        long expectedPhysicalNetwork = 2513l;
+            for (Networks.TrafficType trafficType : 
Networks.TrafficType.values()) {
+                List<NetworkVO> result = 
networkDaoImplSpy.listByPhysicalNetworkTrafficType(expectedPhysicalNetwork, 
trafficType);
+                Assert.assertEquals(listNetworkVoMock, result);
+                
Mockito.verify(searchCriteriaNetworkVoMock).setParameters("trafficType", 
trafficType);
+            }
 
-        for (Networks.TrafficType trafficType : Networks.TrafficType.values()) 
{
-            List<NetworkVO> result = 
networkDaoImplSpy.listByPhysicalNetworkTrafficType(expectedPhysicalNetwork, 
trafficType);
-            Assert.assertEquals(listNetworkVoMock, result);
-            
Mockito.verify(searchCriteriaNetworkVoMock).setParameters("trafficType", 
trafficType);
+            Mockito.verify(searchCriteriaNetworkVoMock, 
Mockito.times(Networks.TrafficType.values().length)).setParameters("physicalNetwork",
 expectedPhysicalNetwork);
+        } finally {
+            txn.close();
         }
-
-        Mockito.verify(searchCriteriaNetworkVoMock, 
Mockito.times(Networks.TrafficType.values().length)).setParameters("physicalNetwork",
 expectedPhysicalNetwork);
     }
 }
diff --git 
a/engine/schema/src/test/java/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java
 
b/engine/schema/src/test/java/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java
index dcbd665a57d..9277bf915c1 100755
--- 
a/engine/schema/src/test/java/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java
+++ 
b/engine/schema/src/test/java/com/cloud/storage/dao/StoragePoolTagsDaoImplTest.java
@@ -25,7 +25,7 @@ import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.Spy;
-import org.powermock.modules.junit4.PowerMockRunner;
+import org.mockito.junit.MockitoJUnitRunner;
 
 import com.cloud.storage.StoragePoolTagVO;
 import com.cloud.utils.db.Filter;
@@ -43,7 +43,7 @@ import java.util.List;
 
 import junit.framework.TestCase;
 
-@RunWith(PowerMockRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class StoragePoolTagsDaoImplTest extends TestCase {
 
     @Mock
diff --git 
a/engine/schema/src/test/java/com/cloud/upgrade/GuestOsMapperTest.java 
b/engine/schema/src/test/java/com/cloud/upgrade/GuestOsMapperTest.java
index fa6c693fe63..94180c970fd 100644
--- a/engine/schema/src/test/java/com/cloud/upgrade/GuestOsMapperTest.java
+++ b/engine/schema/src/test/java/com/cloud/upgrade/GuestOsMapperTest.java
@@ -20,6 +20,7 @@ package com.cloud.upgrade;
 import com.cloud.hypervisor.Hypervisor;
 import com.cloud.storage.GuestOSHypervisorVO;
 import com.cloud.storage.dao.GuestOSHypervisorDao;
+import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -29,12 +30,12 @@ import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.mockito.Spy;
-import org.powermock.modules.junit4.PowerMockRunner;
+import org.mockito.junit.MockitoJUnitRunner;
 
 import java.util.ArrayList;
 import java.util.List;
 
-@RunWith(PowerMockRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class GuestOsMapperTest {
 
     @Spy
@@ -44,9 +45,16 @@ public class GuestOsMapperTest {
     @Mock
     GuestOSHypervisorDao guestOSHypervisorDao;
 
+    private AutoCloseable closeable;
+
     @Before
     public void setup() {
-        MockitoAnnotations.initMocks(this);
+        closeable = MockitoAnnotations.openMocks(this);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        closeable.close();
     }
 
     @Test
@@ -75,8 +83,6 @@ public class GuestOsMapperTest {
         guestOSHypervisorVOS.add(guestOSHypervisorVO);
         
Mockito.when(guestOSHypervisorDao.listByHypervisorTypeAndVersion(Mockito.anyString(),
 Mockito.anyString())).thenReturn(guestOSHypervisorVOS);
         
Mockito.when(guestOSHypervisorVO.getGuestOsName()).thenReturn("centos");
-        GuestOSHypervisorVO guestOsMapping = 
Mockito.mock(GuestOSHypervisorVO.class);
-        
Mockito.when(guestOSHypervisorDao.persist(guestOsMapping)).thenReturn(guestOsMapping);
 
         boolean result = 
guestOsMapper.copyGuestOSHypervisorMappings(Hypervisor.HypervisorType.XenServer,
 "6.0", "7.0");
         Assert.assertTrue(result);
diff --git 
a/engine/schema/src/test/java/com/cloud/upgrade/dao/DatabaseAccessObjectTest.java
 
b/engine/schema/src/test/java/com/cloud/upgrade/dao/DatabaseAccessObjectTest.java
index 7e78c3ec3e9..8f1ee3e0450 100644
--- 
a/engine/schema/src/test/java/com/cloud/upgrade/dao/DatabaseAccessObjectTest.java
+++ 
b/engine/schema/src/test/java/com/cloud/upgrade/dao/DatabaseAccessObjectTest.java
@@ -16,11 +16,12 @@
 // under the License.
 package com.cloud.upgrade.dao;
 
-import static org.mockito.Matchers.startsWith;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.contains;
-import static org.mockito.Matchers.eq;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.contains;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.startsWith;
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -37,8 +38,8 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.powermock.reflect.Whitebox;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.springframework.test.util.ReflectionTestUtils;
 
 @RunWith(MockitoJUnitRunner.class)
 public class DatabaseAccessObjectTest {
@@ -59,7 +60,8 @@ public class DatabaseAccessObjectTest {
 
     @Before
     public void setup() {
-        Whitebox.setInternalState(dao.getClass(), "s_logger", loggerMock);
+        ReflectionTestUtils.setField(dao, "s_logger", loggerMock);
+
     }
 
     @Test
diff --git 
a/engine/schema/src/test/java/com/cloud/upgrade/dao/DbUpgradeUtilsTest.java 
b/engine/schema/src/test/java/com/cloud/upgrade/dao/DbUpgradeUtilsTest.java
index d248cfb254e..1b775406466 100644
--- a/engine/schema/src/test/java/com/cloud/upgrade/dao/DbUpgradeUtilsTest.java
+++ b/engine/schema/src/test/java/com/cloud/upgrade/dao/DbUpgradeUtilsTest.java
@@ -16,11 +16,11 @@
 // under the License.
 package com.cloud.upgrade.dao;
 
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Matchers.eq;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
-import static org.powermock.api.mockito.PowerMockito.when;
+import static org.mockito.Mockito.when;
 
 import java.sql.Connection;
 import java.util.ArrayList;
@@ -31,10 +31,10 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.reflect.Whitebox;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.springframework.test.util.ReflectionTestUtils;
 
-@RunWith(PowerMockRunner.class)
+@RunWith(MockitoJUnitRunner.class)
 public class DbUpgradeUtilsTest {
 
     @Mock
@@ -45,7 +45,7 @@ public class DbUpgradeUtilsTest {
 
     @Before
     public void setupClass() {
-        Whitebox.setInternalState(DbUpgradeUtils.class, "dao", daoMock);
+        ReflectionTestUtils.setField(DbUpgradeUtils.class, "dao", daoMock);
     }
 
     @Test
diff --git 
a/engine/schema/src/test/java/com/cloud/usage/dao/UsageStorageDaoImplTest.java 
b/engine/schema/src/test/java/com/cloud/usage/dao/UsageStorageDaoImplTest.java
index 2a4a58e2b68..c3ad42a9130 100644
--- 
a/engine/schema/src/test/java/com/cloud/usage/dao/UsageStorageDaoImplTest.java
+++ 
b/engine/schema/src/test/java/com/cloud/usage/dao/UsageStorageDaoImplTest.java
@@ -32,15 +32,11 @@ import com.cloud.usage.UsageStorageVO;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
+import org.mockito.MockedStatic;
 import org.mockito.Mockito;
-import org.powermock.api.mockito.PowerMockito;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.core.classloader.annotations.PrepareForTest;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(TransactionLegacy.class)
-@PowerMockIgnore("javax.management.*")
+import org.mockito.junit.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
 public class UsageStorageDaoImplTest {
 
     @Mock
@@ -63,26 +59,26 @@ public class UsageStorageDaoImplTest {
         String UPDATE_DELETED = "UPDATE usage_storage SET deleted = ? WHERE 
account_id = ? AND entity_id = ? AND storage_type = ? AND zone_id = ? and 
deleted IS NULL";
         Date deleted = new Date();
 
-        PowerMockito.mockStatic(TransactionLegacy.class);
-        
Mockito.when(TransactionLegacy.open(TransactionLegacy.USAGE_DB)).thenReturn(transactionMock);
-
-        
when(transactionMock.prepareStatement(contains(UPDATE_DELETED))).thenReturn(preparedStatementMock);
-        when(userStorageVOMock.getAccountId()).thenReturn(accountId);
-        when(userStorageVOMock.getEntityId()).thenReturn(id);
-        when(userStorageVOMock.getStorageType()).thenReturn(storageType);
-        when(userStorageVOMock.getZoneId()).thenReturn(zoneId);
-        when(userStorageVOMock.getDeleted()).thenReturn(deleted);
+        try (MockedStatic<TransactionLegacy> ignore = 
Mockito.mockStatic(TransactionLegacy.class)) {
+            
Mockito.when(TransactionLegacy.open(TransactionLegacy.USAGE_DB)).thenReturn(transactionMock);
 
+            
when(transactionMock.prepareStatement(contains(UPDATE_DELETED))).thenReturn(preparedStatementMock);
+            when(userStorageVOMock.getAccountId()).thenReturn(accountId);
+            when(userStorageVOMock.getEntityId()).thenReturn(id);
+            when(userStorageVOMock.getStorageType()).thenReturn(storageType);
+            when(userStorageVOMock.getZoneId()).thenReturn(zoneId);
+            when(userStorageVOMock.getDeleted()).thenReturn(deleted);
 
 
-        usageDao.update(userStorageVOMock);
+            usageDao.update(userStorageVOMock);
 
-        verify(transactionMock, times(1)).prepareStatement(UPDATE_DELETED);
-        verify(preparedStatementMock, times(1)).setString(1, 
DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), deleted));
-        verify(preparedStatementMock, times(1)).setLong(2, accountId);
-        verify(preparedStatementMock, times(1)).setLong(3, id);
-        verify(preparedStatementMock, times(1)).setInt(4, storageType);
-        verify(preparedStatementMock, times(1)).setLong(5, zoneId);
-        verify(preparedStatementMock, times(1)).executeUpdate();
+            verify(transactionMock, times(1)).prepareStatement(UPDATE_DELETED);
+            verify(preparedStatementMock, times(1)).setString(1, 
DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), deleted));
+            verify(preparedStatementMock, times(1)).setLong(2, accountId);
+            verify(preparedStatementMock, times(1)).setLong(3, id);
+            verify(preparedStatementMock, times(1)).setInt(4, storageType);
+            verify(preparedStatementMock, times(1)).setLong(5, zoneId);
+            verify(preparedStatementMock, times(1)).executeUpdate();
+        }
     }
 }
diff --git 
a/engine/schema/src/test/java/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImplTest.java
 
b/engine/schema/src/test/java/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImplTest.java
index 471fc5216a0..bfcc38ba104 100755
--- 
a/engine/schema/src/test/java/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImplTest.java
+++ 
b/engine/schema/src/test/java/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDaoImplTest.java
@@ -34,17 +34,15 @@ import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Spy;
-import org.powermock.core.classloader.annotations.PowerMockIgnore;
-import org.powermock.modules.junit4.PowerMockRunner;
 
 import com.cloud.storage.ScopeType;
 import com.cloud.storage.dao.StoragePoolHostDao;
 import com.cloud.storage.dao.StoragePoolTagsDao;
 
 import junit.framework.TestCase;
+import org.mockito.junit.MockitoJUnitRunner;
 
-@RunWith(PowerMockRunner.class)
-@PowerMockIgnore("javax.management.*")
+@RunWith(MockitoJUnitRunner.class)
 public class PrimaryDataStoreDaoImplTest extends TestCase {
 
     @Mock
@@ -85,9 +83,6 @@ public class PrimaryDataStoreDaoImplTest extends TestCase {
     @Before
     public void setup() throws IOException, ClassNotFoundException, 
SQLException {
         STORAGE_POOL_DETAILS.put(DETAIL_KEY, DETAIL_VALUE);
-        doReturn(Arrays.asList(storagePoolVO)).when(primaryDataStoreDao).
-                searchStoragePoolsPreparedStatement(nullable(String.class), 
nullable(Long.class), nullable(Long.class), nullable(Long.class),
-                        nullable(ScopeType.class), nullable(Integer.class));
     }
 
     @Test
@@ -137,6 +132,9 @@ public class PrimaryDataStoreDaoImplTest extends TestCase {
 
     @Test
     public void testFindPoolsByDetailsOrTagsInternalStorageTagsType() {
+        doReturn(Arrays.asList(storagePoolVO)).when(primaryDataStoreDao).
+                searchStoragePoolsPreparedStatement(nullable(String.class), 
nullable(Long.class), nullable(Long.class), nullable(Long.class),
+                        nullable(ScopeType.class), nullable(Integer.class));
         List<StoragePoolVO> storagePools = 
primaryDataStoreDao.findPoolsByDetailsOrTagsInternal(DATACENTER_ID, POD_ID, 
CLUSTER_ID, SCOPE, SQL_VALUES, ValueType.TAGS, STORAGE_TAGS_ARRAY.length);
         assertEquals(Arrays.asList(storagePoolVO), storagePools);
         verify(primaryDataStoreDao).getSqlPreparedStatement(
@@ -147,6 +145,9 @@ public class PrimaryDataStoreDaoImplTest extends TestCase {
 
     @Test
     public void testFindPoolsByDetailsOrTagsInternalDetailsType() {
+        doReturn(Arrays.asList(storagePoolVO)).when(primaryDataStoreDao).
+                searchStoragePoolsPreparedStatement(nullable(String.class), 
nullable(Long.class), nullable(Long.class), nullable(Long.class),
+                        nullable(ScopeType.class), nullable(Integer.class));
         List<StoragePoolVO> storagePools = 
primaryDataStoreDao.findPoolsByDetailsOrTagsInternal(DATACENTER_ID, POD_ID, 
CLUSTER_ID, SCOPE, SQL_VALUES, ValueType.DETAILS, STORAGE_POOL_DETAILS.size());
         assertEquals(Arrays.asList(storagePoolVO), storagePools);
         verify(primaryDataStoreDao).getSqlPreparedStatement(
diff --git 
a/engine/schema/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
 
b/engine/schema/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 00000000000..1f0955d450f
--- /dev/null
+++ 
b/engine/schema/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
@@ -0,0 +1 @@
+mock-maker-inline
diff --git 
a/engine/storage/datamotion/src/test/java/org/apache/cloudstack/storage/motion/AncientDataMotionStrategyTest.java
 
b/engine/storage/datamotion/src/test/java/org/apache/cloudstack/storage/motion/AncientDataMotionStrategyTest.java
index 92b6b5b2256..56e0948e593 100755
--- 
a/engine/storage/datamotion/src/test/java/org/apache/cloudstack/storage/motion/AncientDataMotionStrategyTest.java
+++ 
b/engine/storage/datamotion/src/test/java/org/apache/cloudstack/storage/motion/AncientDataMotionStrategyTest.java
@@ -36,17 +36,14 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
-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 com.cloud.agent.api.to.DataTO;
-import com.cloud.capacity.CapacityManager;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 
-@RunWith(PowerMockRunner.class)
-@PrepareForTest(CapacityManager.class)
+
+@RunWith(MockitoJUnitRunner.class)
 public class AncientDataMotionStrategyTest {
 
     @Spy
@@ -69,8 +66,6 @@ public class AncientDataMotionStrategyTest {
 
     @Before
     public void setup() throws Exception {
-        MockitoAnnotations.initMocks(this);
-
         replaceVmwareCreateCloneFullField();
 
         when(vmwareKey.valueIn(POOL_ID)).thenReturn(FULL_CLONE_FLAG);
@@ -99,7 +94,6 @@ public class AncientDataMotionStrategyTest {
 
     @Test
     public void testAddFullCloneFlagOnNotVmwareDest(){
-        when(dataTO.getHypervisorType()).thenReturn(HypervisorType.Any);
         verify(dataStoreTO, never()).setFullCloneFlag(any(Boolean.class));
     }
 
diff --git 
a/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/snapshot/SnapshotDataFactoryImplTest.java
 
b/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/snapshot/SnapshotDataFactoryImplTest.java
index 25de9cd31a7..520dbfa3c26 100644
--- 
a/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/snapshot/SnapshotDataFactoryImplTest.java
+++ 
b/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/snapshot/SnapshotDataFactoryImplTest.java
@@ -31,18 +31,18 @@ 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.storage.DataStoreRole;
 import com.cloud.storage.SnapshotVO;
 import com.cloud.storage.dao.SnapshotDao;
 import com.cloud.utils.component.ComponentContext;
 
-@RunWith(PowerMockRunner.class)
+
+@RunWith(MockitoJUnitRunner.class)
 public class SnapshotDataFactoryImplTest {
 
     @Spy
@@ -68,43 +68,38 @@ public class SnapshotDataFactoryImplTest {
     }
 
     @Test
-    @PrepareForTest({ComponentContext.class})
     public void getSnapshotsByVolumeAndDataStoreTest() {
-        PowerMockito.mockStatic(ComponentContext.class);
-        
PowerMockito.when(ComponentContext.inject(SnapshotObject.class)).thenReturn(new 
SnapshotObject());
+        try (MockedStatic<ComponentContext> componentContextMockedStatic = 
Mockito.mockStatic(ComponentContext.class)) {
+            
Mockito.when(ComponentContext.inject(SnapshotObject.class)).thenReturn(new 
SnapshotObject());
 
-        SnapshotDataStoreVO snapshotDataStoreVoMock = 
Mockito.mock(SnapshotDataStoreVO.class);
-        
Mockito.doReturn(volumeMockId).when(snapshotDataStoreVoMock).getVolumeId();
+            SnapshotDataStoreVO snapshotDataStoreVoMock = 
Mockito.mock(SnapshotDataStoreVO.class);
 
-        long snapshotId = 1223;
-        long dataStoreId = 34567;
-        
Mockito.doReturn(snapshotId).when(snapshotDataStoreVoMock).getSnapshotId();
-        
Mockito.doReturn(dataStoreId).when(snapshotDataStoreVoMock).getDataStoreId();
+            long snapshotId = 1223;
+            long dataStoreId = 34567;
+            
Mockito.doReturn(snapshotId).when(snapshotDataStoreVoMock).getSnapshotId();
+            
Mockito.doReturn(dataStoreId).when(snapshotDataStoreVoMock).getDataStoreId();
 
-        SnapshotVO snapshotVoMock  = Mockito.mock(SnapshotVO.class);
-        Mockito.doReturn(snapshotId).when(snapshotVoMock).getId();
+            SnapshotVO snapshotVoMock = Mockito.mock(SnapshotVO.class);
 
-        DataStoreRole dataStoreRole = DataStoreRole.Primary;
-        DataStore dataStoreMock = Mockito.mock(DataStore.class);
-        Mockito.doReturn(dataStoreId).when(dataStoreMock).getId();
-        Mockito.doReturn(dataStoreRole).when(dataStoreMock).getRole();
+            DataStoreRole dataStoreRole = DataStoreRole.Primary;
+            DataStore dataStoreMock = Mockito.mock(DataStore.class);
 
-        List<SnapshotDataStoreVO> snapshotDataStoreVOs = new ArrayList<>();
-        snapshotDataStoreVOs.add(snapshotDataStoreVoMock);
+            List<SnapshotDataStoreVO> snapshotDataStoreVOs = new ArrayList<>();
+            snapshotDataStoreVOs.add(snapshotDataStoreVoMock);
 
-        
Mockito.doReturn(snapshotDataStoreVOs).when(snapshotStoreDaoMock).listAllByVolumeAndDataStore(volumeMockId,
 dataStoreRole);
-        
Mockito.doReturn(dataStoreMock).when(dataStoreManagerMock).getDataStore(dataStoreId,
 dataStoreRole);
-        
Mockito.doReturn(snapshotVoMock).when(snapshotDaoMock).findById(snapshotId);
+            
Mockito.doReturn(snapshotDataStoreVOs).when(snapshotStoreDaoMock).listAllByVolumeAndDataStore(volumeMockId,
 dataStoreRole);
+            
Mockito.doReturn(dataStoreMock).when(dataStoreManagerMock).getDataStore(dataStoreId,
 dataStoreRole);
+            
Mockito.doReturn(snapshotVoMock).when(snapshotDaoMock).findById(snapshotId);
 
-        List<SnapshotInfo> snapshots = 
snapshotDataFactoryImpl.getSnapshots(volumeMockId, dataStoreRole);
+            List<SnapshotInfo> snapshots = 
snapshotDataFactoryImpl.getSnapshots(volumeMockId, dataStoreRole);
 
-        Assert.assertEquals(1, snapshots.size());
+            Assert.assertEquals(1, snapshots.size());
 
-        SnapshotInfo snapshotInfo = snapshots.get(0);
-        Assert.assertEquals(dataStoreMock, snapshotInfo.getDataStore());
-        Assert.assertEquals(snapshotVoMock, 
((SnapshotObject)snapshotInfo).getSnapshotVO());
+            SnapshotInfo snapshotInfo = snapshots.get(0);
+            Assert.assertEquals(dataStoreMock, snapshotInfo.getDataStore());
+            Assert.assertEquals(snapshotVoMock, ((SnapshotObject) 
snapshotInfo).getSnapshotVO());
 
-        PowerMockito.verifyStatic(ComponentContext.class);
-        ComponentContext.inject(SnapshotObject.class);
+            componentContextMockedStatic.verify(() -> 
ComponentContext.inject(SnapshotObject.class), Mockito.times(1));
+        }
     }
 }
diff --git 
a/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/snapshot/SnapshotServiceImplTest.java
 
b/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/snapshot/SnapshotServiceImplTest.java
index ec5c35501bb..ec2ab8a722b 100644
--- 
a/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/snapshot/SnapshotServiceImplTest.java
+++ 
b/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/snapshot/SnapshotServiceImplTest.java
@@ -30,22 +30,18 @@ import 
org.apache.cloudstack.framework.async.AsyncCallFuture;
 import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
 import org.apache.cloudstack.storage.command.CommandResult;
 import org.junit.Assert;
-import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.InjectMocks;
 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 org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.support.AnnotationConfigContextLoader;
 
-@RunWith(PowerMockRunner.class)
-@PrepareForTest({SnapshotServiceImpl.class})
+@RunWith(MockitoJUnitRunner.class)
 @ContextConfiguration(loader = AnnotationConfigContextLoader.class)
 public class SnapshotServiceImplTest {
 
@@ -59,17 +55,9 @@ public class SnapshotServiceImplTest {
     @Mock
     SnapshotDataFactory _snapshotFactory;
 
-    @Mock
-    AsyncCallFuture<SnapshotResult> futureMock;
-
     @Mock
     AsyncCallbackDispatcher<SnapshotServiceImpl, CommandResult> caller;
 
-    @Before
-    public void testSetUp() throws Exception {
-        MockitoAnnotations.initMocks(this);
-    }
-
     @Test
     public void testRevertSnapshotWithNoPrimaryStorageEntry() throws Exception 
{
         SnapshotInfo snapshot = Mockito.mock(SnapshotInfo.class);
@@ -85,14 +73,14 @@ public class SnapshotServiceImplTest {
 
         PrimaryDataStoreDriver driver = 
Mockito.mock(PrimaryDataStoreDriver.class);
         Mockito.when(store.getDriver()).thenReturn(driver);
-        Mockito.doNothing().when(driver).revertSnapshot(snapshot, null, 
caller);
 
         SnapshotResult result = Mockito.mock(SnapshotResult.class);
-        
PowerMockito.whenNew(AsyncCallFuture.class).withNoArguments().thenReturn(futureMock);
-        Mockito.when(futureMock.get()).thenReturn(result);
-        Mockito.when(result.isFailed()).thenReturn(false);
-
-        Assert.assertEquals(true, snapshotService.revertSnapshot(snapshot));
+        try (MockedConstruction<AsyncCallFuture> ignored = 
Mockito.mockConstruction(AsyncCallFuture.class, (mock, context) -> {
+            Mockito.when(mock.get()).thenReturn(result);
+            Mockito.when(result.isFailed()).thenReturn(false);
+        })) {
+            Assert.assertTrue(snapshotService.revertSnapshot(snapshot));
+        }
     }
 
 }
diff --git 
a/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/vmsnapshot/VMSnapshotStrategyKVMTest.java
 
b/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/vmsnapshot/VMSnapshotStrategyKVMTest.java
index 7ba14c9ed15..d438fef5638 100644
--- 
a/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/vmsnapshot/VMSnapshotStrategyKVMTest.java
+++ 
b/engine/storage/snapshot/src/test/java/org/apache/cloudstack/storage/vmsnapshot/VMSnapshotStrategyKVMTest.java
@@ -49,7 +49,6 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Matchers;
 import org.mockito.Mockito;
-import org.powermock.api.mockito.PowerMockito;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
@@ -163,7 +162,6 @@ public class VMSnapshotStrategyKVMTest extends TestCase{
         SnapshotVO snapshot = new SnapshotVO(vol.getDataCenterId(), 
vol.getAccountId(), vol.getDomainId(),
                                vol.getId(),vol.getDiskOfferingId(), vmUuid + 
"_" + volUuid,(short) SnapshotVO.MANUAL_POLICY_ID,
                                
"MANUAL",vol.getSize(),vol.getMinIops(),vol.getMaxIops(), 
Hypervisor.HypervisorType.KVM, null);
-        
PowerMockito.whenNew(SnapshotVO.class).withAnyArguments().thenReturn(snapshot);
         when(vmSnapshot.getUuid()).thenReturn(vmUuid);
         when(vol.getUuid()).thenReturn(volUuid);
         when(_snapshotDao.persist(any())).thenReturn(snapshot);
@@ -175,7 +173,6 @@ public class VMSnapshotStrategyKVMTest extends TestCase{
 
         when(strategy.takeSnapshot(any())).thenReturn(snapshotInfo);
         VMSnapshotDetailsVO vmDetails = new 
VMSnapshotDetailsVO(vmSnapshot.getId(), volUuid, 
String.valueOf(snapshot.getId()), false);
-        
PowerMockito.whenNew(VMSnapshotDetailsVO.class).withAnyArguments().thenReturn(vmDetails);
         when(vmSnapshotDetailsDao.persist(any())).thenReturn(vmDetails);
 
         info =  vmStrategy.createDiskSnapshot(vmSnapshot, forRollback, vol);
diff --git 
a/engine/storage/snapshot/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
 
b/engine/storage/snapshot/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
new file mode 100644
index 00000000000..1f0955d450f
--- /dev/null
+++ 
b/engine/storage/snapshot/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker
@@ -0,0 +1 @@
+mock-maker-inline
diff --git a/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java 
b/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java
index 1ab2c196ff8..332ab0ef4b3 100644
--- a/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java
+++ b/framework/db/src/main/java/com/cloud/utils/db/GenericDaoBase.java
@@ -919,7 +919,7 @@ public abstract class GenericDaoBase<T, ID extends 
Serializable> extends Compone
     }
 
     @DB()
-    protected List<T> listBy(final SearchCriteria<T> sc) {
+    public List<T> listBy(final SearchCriteria<T> sc) {
         return listBy(sc, null);
     }
 

Reply via email to