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