Remove powermock from ldap & project-role-based plugin (#7658)

This PR removes powermock from tests & fixes the path for tests of project-role-based plugin.
This commit is contained in:
Vishesh 2023-06-27 14:53:00 +05:30 committed by GitHub
parent 06caf32bc8
commit 908b3b7dfa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 44 additions and 40 deletions

View File

@ -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<String> apiNames = new ArrayList<>(Arrays.asList("apiName"));
MockedStatic<CallContext> 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());

View File

@ -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 {

View File

@ -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 {

View File

@ -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<CallContext> 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());
}

View File

@ -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 {

View File

@ -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