Skip to content
This repository has been archived by the owner on Oct 3, 2023. It is now read-only.

Commit

Permalink
feat: add mockito tests instead of easymock
Browse files Browse the repository at this point in the history
  • Loading branch information
athakor committed Apr 1, 2020
1 parent 304439a commit 3232c93
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 131 deletions.
7 changes: 7 additions & 0 deletions pom.xml
Expand Up @@ -72,6 +72,7 @@
<google.core-http.version>1.93.3</google.core-http.version>
<api-client.version>1.30.9</api-client.version>
<easymock.version>3.6</easymock.version>
<mockito.version>1.10.19</mockito.version>
<objenesis.version>2.6</objenesis.version>
<google.auth.version>0.20.0</google.auth.version>
<http-client-bom.version>1.34.2</http-client-bom.version>
Expand Down Expand Up @@ -205,6 +206,12 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
Expand Down
Expand Up @@ -53,7 +53,7 @@ public OrgPolicy apply(OrgPolicyInfo orgPolicyInfo) {
private String updateTime;
private Integer version;

/** Used in policy_type to specify how booleanPolicy will behave at this resource. */
/** Used For boolean Constraints, whether to enforce the Constraint or not. */
static class BoolPolicy implements Serializable {

private static final long serialVersionUID = -2133042982786959351L;
Expand Down
Expand Up @@ -116,6 +116,7 @@ private void compareOrgPolicy(OrgPolicyInfo expected, OrgPolicyInfo value) {
assertEquals(expected.hashCode(), value.hashCode());
assertEquals(expected.getConstraint(), value.getConstraint());
assertEquals(expected.getBoolPolicy(), value.getBoolPolicy());
assertEquals(expected.getEtag(), value.getEtag());
assertEquals(expected.getBoolPolicy().toString(), value.getBoolPolicy().toString());
assertEquals(expected.getPolicies(), value.getPolicies());
assertEquals(expected.getRestoreDefault(), value.getRestoreDefault());
Expand Down
Expand Up @@ -36,21 +36,25 @@
import com.google.cloud.resourcemanager.ResourceManager.ProjectField;
import com.google.cloud.resourcemanager.ResourceManager.ProjectGetOption;
import com.google.cloud.resourcemanager.ResourceManager.ProjectListOption;
import com.google.cloud.resourcemanager.spi.ResourceManagerRpcFactory;
import com.google.cloud.resourcemanager.spi.v1beta1.ResourceManagerRpc;
import com.google.cloud.resourcemanager.spi.v1beta1.ResourceManagerRpc.ListResult;
import com.google.cloud.resourcemanager.testing.LocalResourceManagerHelper;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.easymock.EasyMock;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;

@RunWith(MockitoJUnitRunner.class)
public class ResourceManagerImplTest {

private static final LocalResourceManagerHelper RESOURCE_MANAGER_HELPER =
Expand Down Expand Up @@ -117,6 +121,10 @@ public class ResourceManagerImplTest {
.setVersion(VERSION)
.build();

@Mock private ResourceManagerRpc resourceManagerRpcMock;

@Mock private ResourceManager resourceManagerMock;

@BeforeClass
public static void beforeClass() {
RESOURCE_MANAGER_HELPER.start();
Expand Down Expand Up @@ -429,73 +437,43 @@ public void testTestPermissions() {

@Test
public void testRetryableException() {
ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class);
ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class);
EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class)))
.andReturn(resourceManagerRpcMock);
EasyMock.replay(rpcFactoryMock);
ResourceManager resourceManagerMock =
ResourceManagerOptions.newBuilder()
.setServiceRpcFactory(rpcFactoryMock)
.build()
.getService();
EasyMock.expect(resourceManagerRpcMock.get(PARTIAL_PROJECT.getProjectId(), EMPTY_RPC_OPTIONS))
.andThrow(new ResourceManagerException(500, "Internal Error"))
.andReturn(PARTIAL_PROJECT.toPb());
EasyMock.replay(resourceManagerRpcMock);
Project returnedProject = resourceManagerMock.get(PARTIAL_PROJECT.getProjectId());
assertEquals(
new Project(resourceManagerMock, new ProjectInfo.BuilderImpl(PARTIAL_PROJECT)),
returnedProject);
String exceptionMessage = "Internal Error";
Mockito.doThrow(new ResourceManagerException(500, exceptionMessage))
.when(resourceManagerMock)
.get(PARTIAL_PROJECT.getProjectId());
try {
resourceManagerMock.get(PARTIAL_PROJECT.getProjectId());
fail();
} catch (RuntimeException expected) {
assertEquals(exceptionMessage, expected.getMessage());
}
}

@Test
public void testNonRetryableException() {
ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class);
ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class);
EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class)))
.andReturn(resourceManagerRpcMock);
EasyMock.replay(rpcFactoryMock);
ResourceManager resourceManagerMock =
ResourceManagerOptions.newBuilder()
.setServiceRpcFactory(rpcFactoryMock)
.build()
.getService();
EasyMock.expect(resourceManagerRpcMock.get(PARTIAL_PROJECT.getProjectId(), EMPTY_RPC_OPTIONS))
.andThrow(
new ResourceManagerException(
403, "Project " + PARTIAL_PROJECT.getProjectId() + " not found."))
.once();
EasyMock.replay(resourceManagerRpcMock);
String exceptionMessage = "Project " + PARTIAL_PROJECT.getProjectId() + " not found.";
Mockito.doThrow(new ResourceManagerException(403, exceptionMessage))
.when(resourceManagerMock)
.get(PARTIAL_PROJECT.getProjectId());
try {
resourceManagerMock.get(PARTIAL_PROJECT.getProjectId());
fail();
} catch (ResourceManagerException e) {
assertTrue(e.getMessage().contains("Project partial-project not found"));
} catch (RuntimeException expected) {
assertEquals(exceptionMessage, expected.getMessage());
}
}

@Test
public void testRuntimeException() {
ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class);
ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class);
EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class)))
.andReturn(resourceManagerRpcMock);
EasyMock.replay(rpcFactoryMock);
ResourceManager resourceManagerMock =
ResourceManagerOptions.newBuilder()
.setServiceRpcFactory(rpcFactoryMock)
.build()
.getService();
String exceptionMessage = "Artificial runtime exception";
EasyMock.expect(resourceManagerRpcMock.get(PARTIAL_PROJECT.getProjectId(), EMPTY_RPC_OPTIONS))
.andThrow(new RuntimeException(exceptionMessage));
EasyMock.replay(resourceManagerRpcMock);
Mockito.doThrow(new RuntimeException(exceptionMessage))
.when(resourceManagerMock)
.get(PARTIAL_PROJECT.getProjectId());
try {
resourceManagerMock.get(PARTIAL_PROJECT.getProjectId());
fail();
} catch (ResourceManagerException exception) {
assertEquals(exceptionMessage, exception.getCause().getMessage());
} catch (RuntimeException expected) {
assertEquals(exceptionMessage, expected.getMessage());
}
}

Expand All @@ -512,23 +490,12 @@ public void testClearOrgPolicy() {

@Test
public void testGetEffectiveOrgPolicy() {
ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class);
ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class);
EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class)))
.andReturn(resourceManagerRpcMock);
EasyMock.replay(rpcFactoryMock);
ResourceManager resourceManagerMock =
ResourceManagerOptions.newBuilder()
.setServiceRpcFactory(rpcFactoryMock)
.build()
.getService();
EasyMock.expect(resourceManagerRpcMock.getEffectiveOrgPolicy(RESOURCE, CONSTRAINTS))
.andReturn(ORG_POLICY_INFO.toPb())
.times(2);
EasyMock.replay(resourceManagerRpcMock);
Mockito.when(resourceManagerMock.getEffectiveOrgPolicy(RESOURCE, CONSTRAINTS))
.thenReturn(ORG_POLICY_INFO);
OrgPolicyInfo policyInfo = resourceManagerMock.getEffectiveOrgPolicy(RESOURCE, CONSTRAINTS);
assertEquals(CONSTRAINTS, policyInfo.getConstraint());
assertEquals(BOOLEAN_POLICY, policyInfo.getBoolPolicy());
assertEquals(ETAG, policyInfo.getEtag());
assertEquals(LIST_POLICY, policyInfo.getPolicies());
assertEquals(UPDATE_TIME, policyInfo.getUpdateTime());
assertEquals(VERSION, policyInfo.getVersion());
Expand All @@ -547,20 +514,8 @@ public void testGetEffectiveOrgPolicyWithException() {

@Test
public void testGetOrgPolicy() {
ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class);
ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class);
EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class)))
.andReturn(resourceManagerRpcMock);
EasyMock.replay(rpcFactoryMock);
ResourceManager resourceManagerMock =
ResourceManagerOptions.newBuilder()
.setServiceRpcFactory(rpcFactoryMock)
.build()
.getService();
EasyMock.expect(resourceManagerRpcMock.getOrgPolicy(RESOURCE, CONSTRAINTS))
.andReturn(ORG_POLICY_INFO.toPb())
.times(2);
EasyMock.replay(resourceManagerRpcMock);
Mockito.when(resourceManagerMock.getOrgPolicy(RESOURCE, CONSTRAINTS))
.thenReturn(ORG_POLICY_INFO);
OrgPolicyInfo policyInfo = resourceManagerMock.getOrgPolicy(RESOURCE, CONSTRAINTS);
assertEquals(CONSTRAINTS, policyInfo.getConstraint());
assertEquals(BOOLEAN_POLICY, policyInfo.getBoolPolicy());
Expand All @@ -582,24 +537,24 @@ public void testGetOrgPolicyWithException() {

@Test
public void testListAvailableOrgPolicyConstraints() {
ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class);
ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class);
EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class)))
.andReturn(resourceManagerRpcMock);
EasyMock.replay(rpcFactoryMock);
ResourceManager resourceManagerMock =
ResourceManagerOptions.newBuilder()
.setServiceRpcFactory(rpcFactoryMock)
.build()
.getService();
ResourceManagerRpc.ListResult<Constraint> constraintListResult =
ResourceManagerRpc.ListResult.of(CURSOR, ImmutableList.of(CONSTRAINT_INFO.toPb()));
EasyMock.expect(
resourceManagerRpcMock.listAvailableOrgPolicyConstraints(NAME, EMPTY_RPC_OPTIONS))
.andReturn(constraintListResult);
EasyMock.replay(resourceManagerRpcMock);
Page<ConstraintInfo> page = resourceManagerMock.listAvailableOrgPolicyConstraints(NAME);
assertEquals(CURSOR, page.getNextPageToken());
ListResult<Constraint> expectedResult =
ListResult.of(CURSOR, ImmutableList.of(CONSTRAINT_INFO.toPb()));
Mockito.when(resourceManagerRpcMock.listAvailableOrgPolicyConstraints(NAME, EMPTY_RPC_OPTIONS))
.thenReturn(expectedResult);
ListResult<Constraint> page =
resourceManagerRpcMock.listAvailableOrgPolicyConstraints(NAME, EMPTY_RPC_OPTIONS);
assertEquals(CURSOR, page.pageToken());
for (Constraint constraint : page.results()) {
assertEquals(NAME, constraint.getName());
assertEquals(CONSTRAINT_DEFAULT, constraint.getConstraintDefault());
assertEquals(DISPLAY_NAME, constraint.getDisplayName());
assertEquals(DESCRIPTION, constraint.getDescription());
assertEquals(
LIST_CONSTRAINT.getSuggestedValue(), constraint.getListConstraint().getSuggestedValue());
assertEquals(
LIST_CONSTRAINT.getSupportsUnder(), constraint.getListConstraint().getSupportsUnder());
assertEquals(VERSION, constraint.getVersion());
}
}

@Test
Expand All @@ -615,23 +570,26 @@ public void listAvailableOrgPolicyConstraintsWithException() {

@Test
public void testListOrgPolicies() {
ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class);
ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class);
EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class)))
.andReturn(resourceManagerRpcMock);
EasyMock.replay(rpcFactoryMock);
ResourceManager resourceManagerMock =
ResourceManagerOptions.newBuilder()
.setServiceRpcFactory(rpcFactoryMock)
.build()
.getService();
ResourceManagerRpc.ListResult<OrgPolicy> orgPolicies =
ResourceManagerRpc.ListResult.of(CURSOR, ImmutableList.of(ORG_POLICY_INFO.toPb()));
EasyMock.expect(resourceManagerRpcMock.listOrgPolicies(RESOURCE, EMPTY_RPC_OPTIONS))
.andReturn(orgPolicies);
EasyMock.replay(resourceManagerRpcMock);
Page<OrgPolicyInfo> page = resourceManagerMock.listOrgPolicies(RESOURCE);
assertEquals(CURSOR, page.getNextPageToken());
ListResult<OrgPolicy> expectedResult =
ListResult.of(CURSOR, ImmutableList.of(ORG_POLICY_INFO.toPb()));
Mockito.when(resourceManagerRpcMock.listOrgPolicies(RESOURCE, EMPTY_RPC_OPTIONS))
.thenReturn(expectedResult);
ListResult<OrgPolicy> results =
resourceManagerRpcMock.listOrgPolicies(RESOURCE, EMPTY_RPC_OPTIONS);
assertEquals(CURSOR, results.pageToken());
for (OrgPolicy orgPolicy : results.results()) {
assertEquals(CONSTRAINTS, orgPolicy.getConstraint());
assertEquals(ETAG, orgPolicy.getEtag());
assertEquals(BOOLEAN_POLICY.getEnforce(), orgPolicy.getBooleanPolicy().getEnforced());
assertEquals(LIST_POLICY.getAllValues(), orgPolicy.getListPolicy().getAllValues());
assertEquals(LIST_POLICY.getAllowedValues(), orgPolicy.getListPolicy().getAllowedValues());
assertEquals(LIST_POLICY.getDeniedValues(), orgPolicy.getListPolicy().getDeniedValues());
assertEquals(
LIST_POLICY.getInheritFromParent(), orgPolicy.getListPolicy().getInheritFromParent());
assertEquals(LIST_POLICY.getSuggestedValue(), orgPolicy.getListPolicy().getSuggestedValue());
assertEquals(UPDATE_TIME, orgPolicy.getUpdateTime());
assertEquals(VERSION, orgPolicy.getVersion());
}
}

@Test
Expand All @@ -647,20 +605,8 @@ public void testListOrgPoliciesWithException() {

@Test
public void testSetOrgPolicy() {
ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class);
ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class);
EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class)))
.andReturn(resourceManagerRpcMock);
EasyMock.replay(rpcFactoryMock);
ResourceManager resourceManagerMock =
ResourceManagerOptions.newBuilder()
.setServiceRpcFactory(rpcFactoryMock)
.build()
.getService();
EasyMock.expect(resourceManagerRpcMock.replaceOrgPolicy(RESOURCE, ORG_POLICY_INFO.toPb()))
.andReturn(ORG_POLICY_INFO.toPb())
.times(2);
EasyMock.replay(resourceManagerRpcMock);
Mockito.when(resourceManagerMock.replaceOrgPolicy(RESOURCE, ORG_POLICY_INFO))
.thenReturn(ORG_POLICY_INFO);
OrgPolicyInfo policyInfo = resourceManagerMock.replaceOrgPolicy(RESOURCE, ORG_POLICY_INFO);
assertEquals(CONSTRAINTS, policyInfo.getConstraint());
assertEquals(BOOLEAN_POLICY, policyInfo.getBoolPolicy());
Expand Down

0 comments on commit 3232c93

Please sign in to comment.