package org.smartwallet.stratum; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.node.IntNode; import com.fasterxml.jackson.databind.node.NullNode; import com.fasterxml.jackson.databind.node.TextNode; import com.google.common.collect.Lists; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; /** * Created by devrandom on 2015-Aug-25. */ public class StratumMessageTest { ObjectMapper mapper = new ObjectMapper(); @Before public void setUp() throws Exception { } @Test public void deserialize() throws Exception { StratumMessage m1 = readValue("{\"id\":123, \"method\":\"a.b\", \"params\":[1, \"x\", null]}"); assertEquals(123L, (long)m1.id); assertEquals("a.b", m1.method); assertEquals(Lists.newArrayList(new IntNode(1), new TextNode("x"), NullNode.getInstance()), m1.params); StratumMessage m2 = readValue("{\"id\":123, \"result\":{\"x\": 123}}"); assertTrue(m2.isResult()); assertEquals(123L, (long)m2.id); assertEquals(mapper.createObjectNode().put("x", 123), m2.result); StratumMessage m3 = readValue("{\"id\":123, \"result\":[\"x\"]}"); assertEquals(123L, (long)m3.id); //noinspection AssertEqualsBetweenInconvertibleTypes assertEquals(mapper.createArrayNode().add("x"), m3.result); } @Test public void serializeLineFeed() throws JsonProcessingException { assertEquals(mapper.writeValueAsString(new Integer[]{123}), "[123]"); } private StratumMessage readValue(String content) throws java.io.IOException { return mapper.readValue(content, StratumMessage.class); } }