@Test public void testTranslateAndThrow() throws Exception { BaseServiceException cause = new BaseServiceException(ExceptionData.from(CODE, MESSAGE, REASON, NOT_RETRYABLE)); RetryHelper.RetryHelperException exceptionMock = createMock(RetryHelper.RetryHelperException.class); expect(exceptionMock.getCause()).andReturn(cause).times(2); replay(exceptionMock); try { BaseServiceException.translate(exceptionMock); } catch (BaseServiceException ex) { assertEquals(CODE, ex.getCode()); assertEquals(MESSAGE, ex.getMessage()); assertFalse(ex.isRetryable()); } finally { verify(exceptionMock); } }
@Test public void testNotifyError() { final BaseServiceException ex = new BaseServiceException(ExceptionData.from(0, "message", "reason", false)); assertFalse(result.completed()); BatchResult.Callback<Boolean, BaseServiceException> callback = EasyMock.createStrictMock(BatchResult.Callback.class); callback.error(ex); EasyMock.replay(callback); result.notify(callback); result.error(ex); try { result.notify(callback); fail("The batch has been completed."); } catch (IllegalStateException exception) { // expected } EasyMock.verify(callback); }
@Test public void testError() { assertFalse(result.completed()); try { result.get(); fail("This was not completed yet."); } catch (IllegalStateException ex) { // expected } try { result.error(null); fail(); } catch (NullPointerException exc) { // expected } BaseServiceException ex = new BaseServiceException(ExceptionData.from(0, "message", "reason", false)); result.error(ex); try { result.get(); fail("This is a failed operation and should have thrown a DnsException."); } catch (BaseServiceException real) { assertSame(ex, real); } }
@Test public void testBaseServiceException() { BaseServiceException serviceException = new BaseServiceException(ExceptionData.from(CODE, MESSAGE, REASON, NOT_RETRYABLE)); assertEquals(CODE, serviceException.getCode()); assertEquals(MESSAGE, serviceException.getMessage()); new BaseServiceException(ExceptionData.from(CODE, MESSAGE, REASON, NOT_RETRYABLE, cause)); assertEquals(CODE, serviceException.getCode()); assertEquals(MESSAGE, serviceException.getMessage()); new BaseServiceException( ExceptionData.newBuilder() .setMessage(MESSAGE)