diff --git a/plugins/acl/project-role-based/src/main/test/java/org/apache/cloudstack/acl/ProjectRoleBasedApiAccessCheckerTest.java b/plugins/acl/project-role-based/src/test/java/org/apache/cloudstack/acl/ProjectRoleBasedApiAccessCheckerTest.java similarity index 87% rename from plugins/acl/project-role-based/src/main/test/java/org/apache/cloudstack/acl/ProjectRoleBasedApiAccessCheckerTest.java rename to plugins/acl/project-role-based/src/test/java/org/apache/cloudstack/acl/ProjectRoleBasedApiAccessCheckerTest.java index 5505975b6c8..81061d361da 100644 --- a/plugins/acl/project-role-based/src/main/test/java/org/apache/cloudstack/acl/ProjectRoleBasedApiAccessCheckerTest.java +++ b/plugins/acl/project-role-based/src/test/java/org/apache/cloudstack/acl/ProjectRoleBasedApiAccessCheckerTest.java @@ -26,25 +26,24 @@ import com.cloud.user.User; import com.cloud.user.UserVO; import org.apache.cloudstack.context.CallContext; +import org.junit.After; 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.MockedStatic; import org.mockito.Mockito; -import org.powermock.api.mockito.PowerMockito; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import junit.framework.TestCase; +import org.mockito.junit.MockitoJUnitRunner; -@RunWith(PowerMockRunner.class) -@PrepareForTest(CallContext.class) +@RunWith(MockitoJUnitRunner.class) public class ProjectRoleBasedApiAccessCheckerTest extends TestCase { @Mock ProjectAccountDao projectAccountDaoMock; @@ -63,12 +62,21 @@ public class ProjectRoleBasedApiAccessCheckerTest extends TestCase { List apiNames = new ArrayList<>(Arrays.asList("apiName")); + MockedStatic callContextMocked; + @Before public void setup() { - + callContextMocked = Mockito.mockStatic(CallContext.class); + callContextMocked.when(CallContext::current).thenReturn(callContextMock); Mockito.doReturn(true).when(roleServiceMock).isEnabled(); } + @Override + @After + public void tearDown() throws Exception { + callContextMocked.close(); + } + public Project getTestProject() { return new ProjectVO("Teste", "Teste", 1L, 1L); } @@ -88,8 +96,6 @@ public class ProjectRoleBasedApiAccessCheckerTest extends TestCase { @Test public void getApisAllowedToUserTestProjectIsNullShouldReturnUnchangedApiList() { - PowerMockito.mockStatic(CallContext.class); - PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doReturn(null).when(callContextMock).getProject(); @@ -99,8 +105,6 @@ public class ProjectRoleBasedApiAccessCheckerTest extends TestCase { @Test (expected = PermissionDeniedException.class) public void getApisAllowedToUserTestProjectAccountIsNullThrowPermissionDeniedException() { - PowerMockito.mockStatic(CallContext.class); - PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.when(callContextMock.getProject()).thenReturn(getTestProject()); Mockito.when(projectAccountDaoMock.findByProjectIdAccountId(Mockito.anyLong(), Mockito.anyLong())).thenReturn(null); @@ -111,8 +115,6 @@ public class ProjectRoleBasedApiAccessCheckerTest extends TestCase { @Test public void getApisAllowedToUserTestProjectAccountHasAdminRoleReturnsUnchangedApiList() { - PowerMockito.mockStatic(CallContext.class); - PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doReturn(getTestProject()).when(callContextMock).getProject(); Mockito.doReturn(projectAccountVOMock).when(projectAccountDaoMock).findByProjectIdUserId(Mockito.anyLong(), Mockito.anyLong(), Mockito.anyLong()); @@ -124,8 +126,6 @@ public class ProjectRoleBasedApiAccessCheckerTest extends TestCase { @Test public void getApisAllowedToUserTestProjectAccountNotPermittedForTheApiListShouldReturnEmptyList() { - PowerMockito.mockStatic(CallContext.class); - PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doReturn(getTestProject()).when(callContextMock).getProject(); Mockito.doReturn(projectAccountVOMock).when(projectAccountDaoMock).findByProjectIdUserId(Mockito.anyLong(), Mockito.anyLong(), Mockito.anyLong()); @@ -139,8 +139,6 @@ public class ProjectRoleBasedApiAccessCheckerTest extends TestCase { @Test public void getApisAllowedToUserTestProjectAccountPermittedForTheApiListShouldReturnTheSameList() { - PowerMockito.mockStatic(CallContext.class); - PowerMockito.when(CallContext.current()).thenReturn(callContextMock); Mockito.doReturn(getTestProject()).when(callContextMock).getProject(); Mockito.doReturn(projectAccountVOMock).when(projectAccountDaoMock).findByProjectIdUserId(Mockito.anyLong(), Mockito.anyLong(), Mockito.anyLong()); diff --git a/plugins/acl/project-role-based/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/plugins/acl/project-role-based/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker new file mode 100644 index 00000000000..1f0955d450f --- /dev/null +++ b/plugins/acl/project-role-based/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker @@ -0,0 +1 @@ +mock-maker-inline diff --git a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapCreateAccountCmdTest.java b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapCreateAccountCmdTest.java index 6bc81b771fe..b96a0070585 100644 --- a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapCreateAccountCmdTest.java +++ b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapCreateAccountCmdTest.java @@ -32,8 +32,8 @@ import org.mockito.junit.MockitoJUnitRunner; import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.ArgumentMatchers.nullable; -import static org.powermock.api.mockito.PowerMockito.spy; -import static org.powermock.api.mockito.PowerMockito.when; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class LdapCreateAccountCmdTest implements LdapConfigurationChanger { diff --git a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapImportUsersCmdTest.java b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapImportUsersCmdTest.java index 55310f92b9a..594c23fb786 100644 --- a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapImportUsersCmdTest.java +++ b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapImportUsersCmdTest.java @@ -40,8 +40,8 @@ import static junit.framework.TestCase.assertEquals; import static org.mockito.Matchers.any; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; -import static org.powermock.api.mockito.PowerMockito.spy; -import static org.powermock.api.mockito.PowerMockito.when; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class LdapImportUsersCmdTest implements LdapConfigurationChanger { diff --git a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapListUsersCmdTest.java b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapListUsersCmdTest.java index 6203c53fe61..11d99f58858 100644 --- a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapListUsersCmdTest.java +++ b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LdapListUsersCmdTest.java @@ -31,14 +31,14 @@ import org.apache.cloudstack.ldap.LdapManager; import org.apache.cloudstack.ldap.LdapUser; import org.apache.cloudstack.ldap.NoLdapUserMatchingQueryException; import org.apache.cloudstack.query.QueryService; +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.PowerMockIgnore; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.mockito.junit.MockitoJUnitRunner; import java.util.ArrayList; import java.util.List; @@ -50,16 +50,13 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import static org.mockito.ArgumentMatchers.nullable; import static org.mockito.Matchers.any; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; -import static org.powermock.api.mockito.PowerMockito.doReturn; -import static org.powermock.api.mockito.PowerMockito.doThrow; -import static org.powermock.api.mockito.PowerMockito.spy; -import static org.powermock.api.mockito.PowerMockito.when; +import static org.mockito.Mockito.when; -@RunWith(PowerMockRunner.class) -@PrepareForTest(CallContext.class) -@PowerMockIgnore({"javax.xml.*", "org.w3c.dom.*", "org.apache.xerces.*", "org.xml.*"}) +@RunWith(MockitoJUnitRunner.class) public class LdapListUsersCmdTest implements LdapConfigurationChanger { public static final String LOCAL_DOMAIN_ID = "12345678-90ab-cdef-fedc-ba0987654321"; @@ -76,23 +73,30 @@ public class LdapListUsersCmdTest implements LdapConfigurationChanger { Domain localDomain; + MockedStatic callContextMocked; + @Before public void setUp() throws NoSuchFieldException, IllegalAccessException { ldapListUsersCmd = new LdapListUsersCmd(ldapManager, queryService); cmdSpy = spy(ldapListUsersCmd); - PowerMockito.mockStatic(CallContext.class); - CallContext callContextMock = PowerMockito.mock(CallContext.class); - PowerMockito.when(CallContext.current()).thenReturn(callContextMock); - Account accountMock = PowerMockito.mock(Account.class); - PowerMockito.when(accountMock.getDomainId()).thenReturn(1l); - PowerMockito.when(callContextMock.getCallingAccount()).thenReturn(accountMock); + callContextMocked = Mockito.mockStatic(CallContext.class); + CallContext callContextMock = Mockito.mock(CallContext.class); + callContextMocked.when(CallContext::current).thenReturn(callContextMock); + Account accountMock = Mockito.mock(Account.class); + when(accountMock.getDomainId()).thenReturn(1l); + when(callContextMock.getCallingAccount()).thenReturn(accountMock); ldapListUsersCmd._domainService = domainService; // no need to setHiddenField(ldapListUsersCmd, .... ); } + @After + public void tearDown() throws Exception { + callContextMocked.close(); + } + /** * given: "We have an LdapManager, QueryService and LdapListUsersCmd" * when: "Get entity owner id is called" @@ -114,7 +118,7 @@ public class LdapListUsersCmdTest implements LdapConfigurationChanger { */ @Test public void successfulEmptyResponseFromExecute() throws NoLdapUserMatchingQueryException { - doThrow(new NoLdapUserMatchingQueryException("")).when(ldapManager).getUsers(null); + Mockito.doThrow(new NoLdapUserMatchingQueryException("")).when(ldapManager).getUsers(null); ldapListUsersCmd.execute(); assertEquals(0, ((ListResponse)ldapListUsersCmd.getResponseObject()).getResponses().size()); } diff --git a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmdTest.java b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmdTest.java index 1a00a058b16..e355d77c343 100644 --- a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmdTest.java +++ b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkAccountToLdapCmdTest.java @@ -36,7 +36,7 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Matchers.isNull; -import static org.powermock.api.mockito.PowerMockito.when; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class LinkAccountToLdapCmdTest implements LdapConfigurationChanger { diff --git a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkDomainToLdapCmdTest.java b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkDomainToLdapCmdTest.java index 04594e2ceca..204e9853ffe 100644 --- a/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkDomainToLdapCmdTest.java +++ b/plugins/user-authenticators/ldap/src/test/java/org/apache/cloudstack/api/command/LinkDomainToLdapCmdTest.java @@ -35,7 +35,7 @@ import static org.junit.Assert.assertEquals; import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Matchers.isNull; -import static org.powermock.api.mockito.PowerMockito.when; +import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class LinkDomainToLdapCmdTest implements LdapConfigurationChanger diff --git a/plugins/user-authenticators/ldap/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/plugins/user-authenticators/ldap/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker new file mode 100644 index 00000000000..1f0955d450f --- /dev/null +++ b/plugins/user-authenticators/ldap/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker @@ -0,0 +1 @@ +mock-maker-inline