@Test(groups = "fast") public void testJson() throws Exception { final String className = UUID.randomUUID().toString(); final int code = Integer.MIN_VALUE; final String message = UUID.randomUUID().toString(); final String causeClassName = UUID.randomUUID().toString(); final String causeMessage = UUID.randomUUID().toString(); final BillingExceptionJson exceptionJson = new BillingExceptionJson(className, code, message, causeClassName, causeMessage, ImmutableList.<StackTraceElementJson>of()); Assert.assertEquals(exceptionJson.getClassName(), className); Assert.assertEquals(exceptionJson.getCode(), (Integer) code); Assert.assertEquals(exceptionJson.getMessage(), message); Assert.assertEquals(exceptionJson.getCauseClassName(), causeClassName); Assert.assertEquals(exceptionJson.getCauseMessage(), causeMessage); Assert.assertEquals(exceptionJson.getStackTrace().size(), 0); final String asJson = mapper.writeValueAsString(exceptionJson); final BillingExceptionJson fromJson = mapper.readValue(asJson, BillingExceptionJson.class); Assert.assertEquals(fromJson, exceptionJson); }
@Test(groups = "fast") public void testFromException() throws Exception { final String nil = null; try { nil.toString(); Assert.fail(); } catch (NullPointerException e) { final BillingExceptionJson exceptionJson = new BillingExceptionJson(e); Assert.assertEquals(exceptionJson.getClassName(), e.getClass().getName()); Assert.assertNull(exceptionJson.getCode()); Assert.assertNull(exceptionJson.getMessage()); Assert.assertNull(exceptionJson.getCauseClassName()); Assert.assertNull(exceptionJson.getCauseMessage()); Assert.assertFalse(exceptionJson.getStackTrace().isEmpty()); Assert.assertEquals(exceptionJson.getStackTrace().get(0).getClassName(), TestBillingExceptionJson.class.getName()); Assert.assertEquals(exceptionJson.getStackTrace().get(0).getMethodName(), "testFromException"); Assert.assertFalse(exceptionJson.getStackTrace().get(0).getNativeMethod()); } } }