@Test
public void testFromJson_mediumBadData() {
String error = "{\"sxerror\":\"1\",\"source\":\"go.micro.client\",\"category\":408,\"code\":\"unexpected_error\",\"message\":\"call timeout: context deadline exceeded\",\"data\":\"'*errors.Error' with error '{\\\"id\\\":\\\"go.micro.client\\\",\\\"code\\\":408,\\\"detail\\\":\\\"call timeout: context deadline exceeded\\\",\\\"status\\\":\\\"Request Timeout\\\"}' cannot be mapped to a known representation. Data: \\u0026errors.Error{Id:\\\"go.micro.client\\\", Code:408, Detail:\\\"call timeout: context deadline exceeded\\\", Status:\\\"Request Timeout\\\"}\",\"retriable\":false}";
RpcCallException ex = RpcCallException.fromJson(error);
assertThat(ex).isNotNull();
assertThat(ex.getCategory()).isEqualTo(RpcCallException.Category.InternalServerError);
assertThat(ex.getErrorCode()).isEqualTo("unexpected_error");
assertThat(ex.getMessage()).isEqualTo("call timeout: context deadline exceeded");
assertThat(ex.getData()).isNotNull();
assertThat(ex.isRetriable()).isFalse();
}