use of com.weibo.yar.YarResponse in project motan by weibocom.
the class YarProtocolUtil method buildDefaultErrorResponse.
public static YarResponse buildDefaultErrorResponse(String errMsg, String packagerName) {
YarResponse yarResponse = new YarResponse();
yarResponse.setPackagerName(packagerName);
yarResponse.setError(errMsg);
yarResponse.setStatus("500");
return yarResponse;
}
use of com.weibo.yar.YarResponse in project motan by weibocom.
the class YarProtocolUtilTest method testBuildDefaultErrorResponse.
@Test
public void testBuildDefaultErrorResponse() {
String errMsg = "test err";
String packagerName = "MSGPACK";
YarResponse response = YarProtocolUtil.buildDefaultErrorResponse(errMsg, packagerName);
assertNotNull(response);
assertEquals(errMsg, response.getError());
assertEquals(packagerName, response.getPackagerName());
}
use of com.weibo.yar.YarResponse in project motan by weibocom.
the class YarMessageRouterTest method testHandle.
@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void testHandle() {
response = new DefaultResponse();
response.setValue("test");
response.setProcessTime(1);
Provider provider = new DefaultProvider(null, null, AnnoService.class);
router.addProvider(provider);
YarRequest yarRequest = new YarRequest(1, "JSON", "hello", new Object[] { "params" });
yarRequest.setRequestPath(requestPath);
YarResponse yarResponse = (YarResponse) router.handle(null, yarRequest);
assertEquals(YarProtocolUtil.convert(response, "JSON"), yarResponse);
}
use of com.weibo.yar.YarResponse in project motan by weibocom.
the class YarMessageHandlerWarpperTest method testHandle.
@Test
public void testHandle() throws Exception {
YarRequest yarRequest = new YarRequest(123, "JSON", "testmethod", new Object[] { "params", 456 });
final YarResponse yarResponse = YarProtocolUtil.buildDefaultErrorResponse("test err", "JSON");
YarMessageHandlerWarpper handler = new YarMessageHandlerWarpper(new YarMessageRouter() {
@Override
public Object handle(Channel channel, Object message) {
AttachmentRequest request = (AttachmentRequest) message;
verifyAttachments(request.getAttachments());
return yarResponse;
}
});
FullHttpResponse httpResponse = (FullHttpResponse) handler.handle(new MockChannel(), buildHttpRequest(yarRequest, uri));
assertNotNull(httpResponse);
assertNotNull(httpResponse.content());
YarResponse retYarResponse = getYarResponse(httpResponse);
assertNotNull(retYarResponse);
assertEquals(yarResponse, retYarResponse);
}
use of com.weibo.yar.YarResponse in project motan by weibocom.
the class YarMessageHandlerWarpperTest method testAbnormal.
@Test
public void testAbnormal() throws Exception {
final String errmsg = "rpc process error";
YarMessageHandlerWarpper handler = new YarMessageHandlerWarpper(new YarMessageRouter() {
@Override
public Object handle(Channel channel, Object message) {
throw new RuntimeException(errmsg);
}
});
// yar协议无法解析
FullHttpResponse httpResponse = (FullHttpResponse) handler.handle(new MockChannel(), buildHttpRequest(null, uri));
assertNotNull(httpResponse);
assertEquals(HttpResponseStatus.OK, httpResponse.getStatus());
YarResponse retYarResponse = getYarResponse(httpResponse);
assertNotNull(retYarResponse);
assertNotNull(retYarResponse.getError());
// yar协议可以正常解析,但后续处理异常
YarRequest yarRequest = new YarRequest(123, "JSON", "testmethod", new Object[] { "params", 456 });
httpResponse = (FullHttpResponse) handler.handle(new MockChannel(), buildHttpRequest(yarRequest, uri));
assertNotNull(httpResponse);
assertEquals(HttpResponseStatus.OK, httpResponse.getStatus());
retYarResponse = getYarResponse(httpResponse);
assertNotNull(retYarResponse);
assertEquals(errmsg, retYarResponse.getError());
}
Aggregations