Browse Source

DecoderEventPacketTest added

master
Nikita 13 years ago
parent
commit
f7ea24eb89
  1. 2
      src/main/java/com/corundumstudio/socketio/parser/Decoder.java
  2. 9
      src/main/java/com/corundumstudio/socketio/parser/Event.java
  3. 6
      src/main/java/com/corundumstudio/socketio/parser/Packet.java
  4. 43
      src/test/java/com/corundumstudio/socketio/parser/DecoderEventPacketTest.java

2
src/main/java/com/corundumstudio/socketio/parser/Decoder.java

@ -120,7 +120,7 @@ public class Decoder {
packet.setAckId(ackMatcher.group(1));
String ackArgsJSON = extract(ackMatcher, 3);
if (ackArgsJSON != null && ackArgsJSON.trim().length() > 0) {
List<String> args = objectMapper.readValue(ackArgsJSON, List.class);
List<Object> args = objectMapper.readValue(ackArgsJSON, List.class);
packet.setArgs(args);
}
}

9
src/main/java/com/corundumstudio/socketio/parser/Event.java

@ -15,15 +15,18 @@ import java.util.List;
public class Event {
private String name;
private List<String> args;
private List<Object> args;
public Event(String name, List<String> args) {
public Event() {
}
public Event(String name, List<Object> args) {
super();
this.name = name;
this.args = args;
}
public List<String> getArgs() {
public List<Object> getArgs() {
return args;
}

6
src/main/java/com/corundumstudio/socketio/parser/Packet.java

@ -19,7 +19,7 @@ public class Packet {
public static final Packet NULL_INSTANCE = new Packet(null);
private final PacketType type;
private List<String> args = Collections.emptyList();
private List<Object> args = Collections.emptyList();
private String qs;
private String ack;
private String ackId;
@ -75,10 +75,10 @@ public class Packet {
this.name = name;
}
public List<String> getArgs() {
public List<Object> getArgs() {
return args;
}
public void setArgs(List<String> args) {
public void setArgs(List<Object> args) {
this.args = args;
}

43
src/test/java/com/corundumstudio/socketio/parser/DecoderEventPacketTest.java

@ -0,0 +1,43 @@
package com.corundumstudio.socketio.parser;
import java.io.IOException;
import java.util.Map;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Assert;
import org.junit.Test;
public class DecoderEventPacketTest {
private final Decoder decoder = new Decoder(new ObjectMapper());
@Test
public void testDecode() throws IOException {
Packet packet = decoder.decodePacket("5:::{\"name\":\"woot\"}");
Assert.assertEquals(PacketType.EVENT, packet.getType());
Assert.assertEquals("woot", packet.getName());
}
@Test
public void testDecodeWithMessageIdAndAck() throws IOException {
Packet packet = decoder.decodePacket("5:1+::{\"name\":\"tobi\"}");
Assert.assertEquals(PacketType.EVENT, packet.getType());
Assert.assertEquals("1", packet.getId());
Assert.assertEquals("data", packet.getAck());
Assert.assertEquals("tobi", packet.getName());
}
@Test
public void testDecodeWithData() throws IOException {
Packet packet = decoder.decodePacket("5:::{\"name\":\"edwald\",\"args\":[{\"a\": \"b\"},2,\"3\"]}");
Assert.assertEquals(PacketType.EVENT, packet.getType());
Assert.assertEquals("edwald", packet.getName());
Assert.assertEquals(3, packet.getArgs().size());
Map obj = (Map)packet.getArgs().get(0);
Assert.assertEquals("b", obj.get("a"));
Assert.assertEquals(2, packet.getArgs().get(1));
Assert.assertEquals("3", packet.getArgs().get(2));
}
}
Loading…
Cancel
Save