@Override public JsonElement serialize(OperationRequest req, Type type, JsonSerializationContext ctx) { JsonObject object = new JsonObject(); object.addProperty(RequestProperty.METHOD.key(), operationNamespace + req.getMethod()); object.addProperty(RequestProperty.ID.key(), req.getId()); JsonObject parameters = new JsonObject(); for (Entry<ParamsProperty, Object> entry : req.getParams().entrySet()) { if (entry.getValue() != null) { parameters.add(entry.getKey().key(), ctx.serialize(entry.getValue())); } } object.add(RequestProperty.PARAMS.key(), parameters); return object; }
public void testDeserialize() throws Exception { String operation = "{'id':'op1','method':'wavelet.setTitle','params':{" + "'waveId':'1','waveletId':'2','waveletTitle':'Title','unknown':'value'}}"; JsonElement jsonElement = new JsonParser().parse(operation); JsonDeserializationContext mockContext = mock(JsonDeserializationContext.class); when(mockContext.deserialize(any(JsonElement.class), eq(String.class))).thenAnswer( new Answer<String>() { public String answer(InvocationOnMock invocation) { return ((JsonPrimitive) (invocation.getArguments()[0])).getAsString(); } }); OperationRequestGsonAdaptor adaptor = new OperationRequestGsonAdaptor(); OperationRequest result = adaptor.deserialize(jsonElement, null, mockContext); assertEquals("op1", result.getId()); assertEquals("wavelet.setTitle", result.getMethod()); assertEquals("1", result.getWaveId()); assertEquals("2", result.getWaveletId()); assertNull(result.getBlipId()); assertEquals(3, result.getParams().size()); assertEquals("Title", result.getParameter(ParamsProperty.WAVELET_TITLE)); } }
public void testDeserialize() throws Exception { String operation = "{'id':'op1','method':'wavelet.setTitle','params':{" + "'waveId':'1','waveletId':'2','waveletTitle':'Title','unknown':'value'}}"; JsonElement jsonElement = new JsonParser().parse(operation); JsonDeserializationContext mockContext = mock(JsonDeserializationContext.class); when(mockContext.deserialize(any(JsonElement.class), eq(String.class))).thenAnswer( new Answer<String>() { public String answer(InvocationOnMock invocation) { return ((JsonPrimitive) (invocation.getArguments()[0])).getAsString(); } }); OperationRequestGsonAdaptor adaptor = new OperationRequestGsonAdaptor(); OperationRequest result = adaptor.deserialize(jsonElement, null, mockContext); assertEquals("op1", result.getId()); assertEquals("wavelet.setTitle", result.getMethod()); assertEquals("1", result.getWaveId()); assertEquals("2", result.getWaveletId()); assertNull(result.getBlipId()); assertEquals(3, result.getParams().size()); assertEquals("Title", result.getParameter(ParamsProperty.WAVELET_TITLE)); } }