@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); }
@Test public void testInvalidTransport() { thrown.expect(IllegalArgumentException.class); ResourceManagerOptions.newBuilder() .setTransportOptions(EasyMock.createMock(TransportOptions.class)); } }
public static Builder builder() { return new Builder(); } }
@SuppressWarnings("unchecked") @Override public Builder toBuilder() { return new Builder(this); }
/** * Returns a {@link ResourceManagerOptions} instance that sets the host to use the mock server. */ public ResourceManagerOptions options() { return ResourceManagerOptions.builder() .host("http://localhost:" + port) .authCredentials(AuthCredentials.noAuth()) .build(); }
/** * Returns a default {@code ResourceManagerOptions} instance. */ public static ResourceManagerOptions defaultInstance() { return builder().build(); }
@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); thrown.expect(ResourceManagerException.class); thrown.expectMessage("Project " + PARTIAL_PROJECT.getProjectId() + " not found."); resourceManagerMock.get(PARTIAL_PROJECT.getProjectId()); }
@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); thrown.expect(ResourceManagerException.class); thrown.expectMessage(exceptionMessage); resourceManagerMock.get(PARTIAL_PROJECT.getProjectId()); } }
@Override protected Serializable[] serializableObjects() { ResourceManagerOptions options = ResourceManagerOptions.newBuilder().build(); ResourceManagerOptions otherOptions = options.toBuilder().setProjectId("some-unnecessary-project-ID").build(); return new Serializable[] { PARTIAL_PROJECT_INFO, FULL_PROJECT_INFO, PROJECT, PAGE_RESULT, PROJECT_GET_OPTION, PROJECT_LIST_OPTION, RESOURCE_MANAGER_EXCEPTION, options, otherOptions }; }
public static Builder newBuilder() { return new Builder(); } }
/** Returns a default {@code ResourceManagerOptions} instance. */ public static ResourceManagerOptions getDefaultInstance() { return newBuilder().build(); }
@SuppressWarnings("unchecked") @Override public Builder toBuilder() { return new Builder(this); }
/** * Returns a {@link ResourceManagerOptions} instance that sets the host to use the mock server. */ public ResourceManagerOptions getOptions() { return ResourceManagerOptions.newBuilder() .setHost("http://localhost:" + port) .setCredentials(NoCredentials.getInstance()) .build(); }