package com.github.nkzawa.socketio.parser; import com.github.nkzawa.emitter.Emitter; import com.google.gson.JsonParser; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; @RunWith(JUnit4.class) public class ParserTest { private static Parser.Encoder encoder = new Parser.Encoder(); @Test public void connect() { Packet packet = new Packet(Parser.CONNECT); packet.nsp = "/woot"; test(packet); } @Test public void disconnect() { Packet packet = new Packet(Parser.DISCONNECT); packet.nsp = "/woot"; test(packet); } @Test public void event() { Packet packet1 = new Packet(Parser.EVENT); packet1.data = new JsonParser().parse("[\"a\", 1, {}]"); packet1.nsp = "/"; test(packet1); Packet packet2 = new Packet(Parser.EVENT); packet2.data = new JsonParser().parse("[\"a\", 1, {}]"); packet2.nsp = "/test"; test(packet2); } @Test public void ack() { Packet packet = new Packet(Parser.ACK); packet.data = new JsonParser().parse("[\"a\", 1, {}]"); packet.id = 123; packet.nsp = "/"; test(packet); } private void test(final Packet obj) { encoder.encode(obj, new Parser.Encoder.Callback() { @Override public void call(String[] encodedPackets) { Parser.Decoder decoder = new Parser.Decoder(); decoder.on(Parser.Decoder.EVENT_DECODED, new Emitter.Listener() { @Override public void call(Object... args) { Packet packet = (Packet)args[0]; assertThat(packet.type, is(obj.type)); assertThat(packet.id, is(obj.id)); assertThat(packet.data, is(obj.data)); assertThat(packet.nsp, is(obj.nsp)); assertThat(packet.attachments, is(obj.attachments)); } }); decoder.add(encodedPackets[0]); } }); } }