Search in sources :

Example 1 with DemoRequest

use of com.alipay.sofa.rpc.codec.jackson.model.DemoRequest in project sofa-rpc by sofastack.

the class JacksonSerializerTest method buildSay3Request.

private SofaRequest buildSay3Request() throws NoSuchMethodException {
    final DemoRequest demoRequest = new DemoRequest();
    demoRequest.setName("name");
    List<DemoRequest> list = new ArrayList<DemoRequest>();
    list.add(demoRequest);
    return buildRequest("say3", new Object[] { list });
}
Also used : ArrayList(java.util.ArrayList) DemoRequest(com.alipay.sofa.rpc.codec.jackson.model.DemoRequest)

Example 2 with DemoRequest

use of com.alipay.sofa.rpc.codec.jackson.model.DemoRequest in project sofa-rpc by sofastack.

the class JacksonSerializerTest method encodeAndDecode.

@Test
public void encodeAndDecode() {
    boolean error = false;
    try {
        serializer.encode(null, null);
    } catch (Exception e) {
        error = true;
    }
    Assert.assertTrue(error);
    DemoRequest demoRequest = new DemoRequest();
    demoRequest.setName("a");
    AbstractByteBuf byteBuf = serializer.encode(demoRequest, null);
    DemoRequest req2 = (DemoRequest) serializer.decode(byteBuf, DemoRequest.class, null);
    Assert.assertEquals(demoRequest.getName(), req2.getName());
    AbstractByteBuf data = serializer.encode("xxx", null);
    String dst = (String) serializer.decode(data, String.class, null);
    Assert.assertEquals("xxx", dst);
    error = false;
    try {
        serializer.encode(new Date(), null);
    } catch (Exception e) {
        error = true;
    }
    Assert.assertTrue(!error);
    error = false;
    try {
        serializer.decode(data, null, null);
    } catch (Exception e) {
        error = true;
    }
    Assert.assertTrue(error);
    error = false;
    try {
        serializer.decode(data, "", null);
    } catch (Exception e) {
        error = true;
    }
    Assert.assertTrue(error);
}
Also used : AbstractByteBuf(com.alipay.sofa.rpc.transport.AbstractByteBuf) DemoRequest(com.alipay.sofa.rpc.codec.jackson.model.DemoRequest) SofaRpcException(com.alipay.sofa.rpc.core.exception.SofaRpcException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Date(java.util.Date) Test(org.junit.Test)

Example 3 with DemoRequest

use of com.alipay.sofa.rpc.codec.jackson.model.DemoRequest in project sofa-rpc by sofastack.

the class JacksonSerializerTest method buildSay2Request.

private SofaRequest buildSay2Request() throws NoSuchMethodException {
    final DemoRequest demoRequest = new DemoRequest();
    demoRequest.setName("name");
    Map<String, String> ctx = new HashMap<String, String>();
    ctx.put("abc", "123");
    return buildRequest("say2", new Object[] { demoRequest, ctx, 123 });
}
Also used : HashMap(java.util.HashMap) DemoRequest(com.alipay.sofa.rpc.codec.jackson.model.DemoRequest)

Example 4 with DemoRequest

use of com.alipay.sofa.rpc.codec.jackson.model.DemoRequest in project sofa-rpc by sofastack.

the class JacksonSerializerTest method buildSayRequest.

private SofaRequest buildSayRequest() throws NoSuchMethodException {
    final DemoRequest demoRequest = new DemoRequest();
    demoRequest.setName("name");
    return buildRequest("say", new Object[] { demoRequest });
}
Also used : DemoRequest(com.alipay.sofa.rpc.codec.jackson.model.DemoRequest)

Example 5 with DemoRequest

use of com.alipay.sofa.rpc.codec.jackson.model.DemoRequest in project sofa-rpc by sofastack.

the class JacksonSerializerTest method testListParameter.

@Test
public void testListParameter() throws NoSuchMethodException {
    SofaRequest request = buildSay3Request();
    AbstractByteBuf data = serializer.encode(request, null);
    boolean error = false;
    try {
        serializer.decode(data, SofaRequest.class, null);
    } catch (Exception e) {
        error = true;
    }
    Assert.assertTrue(error);
    error = false;
    try {
        serializer.decode(data, new SofaRequest(), null);
    } catch (Exception e) {
        error = true;
    }
    Assert.assertTrue(error);
    error = false;
    // parameters size error
    Map<String, String> errorHead1 = new HashMap<String, String>();
    errorHead1.put(RemotingConstants.HEAD_TARGET_SERVICE, DemoService.class.getCanonicalName() + ":1.0");
    errorHead1.put(RemotingConstants.HEAD_METHOD_NAME, "say3");
    try {
        ObjectMapper mapper = new ObjectMapper();
        DemoRequest req = new DemoRequest();
        req.setName("123");
        serializer.decode(new ByteArrayWrapperByteBuf(mapper.writeValueAsBytes(req)), new SofaRequest(), errorHead1);
    } catch (Exception e) {
        error = true;
    }
    Assert.assertTrue(error);
    // parameters size error
    Map<String, String> errorHead2 = new HashMap<String, String>();
    errorHead2.put(RemotingConstants.HEAD_TARGET_SERVICE, DemoService.class.getCanonicalName() + ":1.0");
    errorHead2.put(RemotingConstants.HEAD_METHOD_NAME, "say3");
    try {
        ObjectMapper mapper = new ObjectMapper();
        DemoRequest req = new DemoRequest();
        req.setName("123");
        serializer.decode(new ByteArrayWrapperByteBuf(mapper.writeValueAsBytes(new Object[] { req, "123" })), new SofaRequest(), errorHead2);
    } catch (Exception e) {
        error = true;
    }
    Assert.assertTrue(error);
    Map<String, String> head = new HashMap<String, String>();
    head.put(RemotingConstants.HEAD_TARGET_SERVICE, DemoService.class.getCanonicalName() + ":1.0");
    head.put(RemotingConstants.HEAD_METHOD_NAME, "say3");
    head.put(RemotingConstants.HEAD_TARGET_APP, "targetApp");
    head.put(RemotingConstants.RPC_TRACE_NAME + ".a", "xxx");
    head.put(RemotingConstants.RPC_TRACE_NAME + ".b", "yyy");
    head.put("unkown", "yes");
    SofaRequest newRequest = new SofaRequest();
    serializer.decode(data, newRequest, head);
    Assert.assertEquals(newRequest.getInterfaceName(), request.getInterfaceName());
    Assert.assertEquals(newRequest.getMethodName(), request.getMethodName());
    Assert.assertEquals(newRequest.getMethodArgs().length, request.getMethodArgs().length);
    Assert.assertEquals("name", ((List<DemoRequest>) newRequest.getMethodArgs()[0]).get(0).getName());
    Assert.assertEquals(newRequest.getTargetServiceUniqueName(), request.getTargetServiceUniqueName());
    Assert.assertEquals(newRequest.getTargetAppName(), request.getTargetAppName());
    Assert.assertEquals(newRequest.getRequestProp(RemotingConstants.RPC_TRACE_NAME), request.getRequestProp(RemotingConstants.RPC_TRACE_NAME));
}
Also used : AbstractByteBuf(com.alipay.sofa.rpc.transport.AbstractByteBuf) SofaRequest(com.alipay.sofa.rpc.core.request.SofaRequest) HashMap(java.util.HashMap) DemoRequest(com.alipay.sofa.rpc.codec.jackson.model.DemoRequest) ArrayList(java.util.ArrayList) List(java.util.List) ByteArrayWrapperByteBuf(com.alipay.sofa.rpc.transport.ByteArrayWrapperByteBuf) SofaRpcException(com.alipay.sofa.rpc.core.exception.SofaRpcException) UnsupportedEncodingException(java.io.UnsupportedEncodingException) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) Test(org.junit.Test)

Aggregations

DemoRequest (com.alipay.sofa.rpc.codec.jackson.model.DemoRequest)6 SofaRpcException (com.alipay.sofa.rpc.core.exception.SofaRpcException)3 AbstractByteBuf (com.alipay.sofa.rpc.transport.AbstractByteBuf)3 UnsupportedEncodingException (java.io.UnsupportedEncodingException)3 HashMap (java.util.HashMap)3 Test (org.junit.Test)3 SofaRequest (com.alipay.sofa.rpc.core.request.SofaRequest)2 ByteArrayWrapperByteBuf (com.alipay.sofa.rpc.transport.ByteArrayWrapperByteBuf)2 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 ArrayList (java.util.ArrayList)2 Date (java.util.Date)1 List (java.util.List)1