package com.alibaba.json.bvt.parser.deser;
import org.junit.Assert;
import junit.framework.TestCase;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONException;
public class ThrowableDeserializerTest extends TestCase {
public void test_0 () throws Exception {
Assert.assertEquals(Throwable.class, JSON.parseObject("{}", Throwable.class).getClass());
Assert.assertEquals(Throwable.class, JSON.parseObject("{,,,}", Throwable.class).getClass());
Assert.assertEquals(java.lang.RuntimeException.class, JSON.parseObject("{\"@type\":\"java.lang.RuntimeException\"}", Throwable.class).getClass());
Assert.assertEquals(null, JSON.parseObject("{\"message\":null}", Throwable.class).getMessage());
Assert.assertEquals(Exception.class, JSON.parseObject("{\"cause\":{}}", Throwable.class).getCause().getClass());
}
public void test_error() throws Exception {
JSONException error = null;
try {
JSON.parseObject("{\"@type\":33}", Throwable.class);
} catch (JSONException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
public void test_error1() throws Exception {
JSONException error = null;
try {
Assert.assertEquals(null, JSON.parseObject("{\"message\":33}", Throwable.class).getMessage());
} catch (JSONException ex) {
error = ex;
}
Assert.assertNotNull(error);
}
public void test_error2() throws Exception {
Exception error = null;
try {
Assert.assertEquals(null, JSON.parseObject("{}", MyException.class).getMessage());
} catch (Exception ex) {
error = ex;
}
Assert.assertNotNull(error);
}
public void test_error3() throws Exception {
Exception error = null;
try {
Assert.assertEquals(null, JSON.parseObject("{}", MyException2.class).getMessage());
} catch (Exception ex) {
error = ex;
}
Assert.assertNotNull(error);
}
public static class MyException extends Exception {
private MyException() {
}
}
public static class MyException2 extends Exception {
public MyException2() {
throw new RuntimeException();
}
}
}