@Test public void testResourceManagerException() { ComputeException exception = new ComputeException(500, "message"); assertEquals(500, exception.getCode()); assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertTrue(exception.isRetryable()); exception = new ComputeException(403, "message"); assertEquals(403, exception.getCode()); assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertFalse(exception.isRetryable()); IOException cause = new SocketTimeoutException(); exception = new ComputeException(cause); assertNull(exception.getReason()); assertNull(exception.getMessage()); assertTrue(exception.isRetryable()); assertSame(cause, exception.getCause()); exception = new ComputeException(403, "message", cause); assertEquals(403, exception.getCode()); assertEquals("message", exception.getMessage()); assertNull(exception.getReason()); assertFalse(exception.isRetryable()); assertSame(cause, exception.getCause()); }