Added partial subscribe and unsubscribe logic
This commit is contained in:
parent
a1caa8b0e1
commit
f175830fae
6 changed files with 164 additions and 21 deletions
|
|
@ -2,10 +2,7 @@ package zutil.net.mqtt;
|
|||
|
||||
import org.junit.Test;
|
||||
import zutil.net.mqtt.MqttBroker.MqttConnectionThread;
|
||||
import zutil.net.mqtt.packet.MqttPacketDisconnect;
|
||||
import zutil.net.mqtt.packet.MqttPacketHeader;
|
||||
import zutil.net.mqtt.packet.MqttPacketPingReq;
|
||||
import zutil.net.mqtt.packet.MqttPacketPingResp;
|
||||
import zutil.net.mqtt.packet.*;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.LinkedList;
|
||||
|
|
@ -24,12 +21,40 @@ public class MqttBrokerTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void subscribeEmpty() throws IOException {
|
||||
MqttConnectionMockThread thread = new MqttConnectionMockThread();
|
||||
MqttPacketSubscribe subscribePacket = new MqttPacketSubscribe();
|
||||
subscribePacket.packetId = (int)(Math.random()*1000);
|
||||
|
||||
thread.handlePacket(subscribePacket);
|
||||
|
||||
MqttPacketHeader responsePacket = thread.sentPackets.poll();
|
||||
assertEquals(MqttPacketSubscribeAck.class, responsePacket.getClass());
|
||||
assertEquals(subscribePacket.packetId, ((MqttPacketSubscribeAck)responsePacket).packetId);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void unsubscribe() throws IOException {
|
||||
MqttConnectionMockThread thread = new MqttConnectionMockThread();
|
||||
MqttPacketUnsubscribe unsubscribePacket = new MqttPacketUnsubscribe();
|
||||
unsubscribePacket.packetId = (int)(Math.random()*1000);
|
||||
|
||||
thread.handlePacket(unsubscribePacket);
|
||||
|
||||
MqttPacketHeader responsePacket = thread.sentPackets.poll();
|
||||
assertEquals(MqttPacketUnsubscribeAck.class, responsePacket.getClass());
|
||||
assertEquals(unsubscribePacket.packetId, ((MqttPacketUnsubscribeAck)responsePacket).packetId);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void ping() throws IOException {
|
||||
MqttConnectionMockThread thread = new MqttConnectionMockThread();
|
||||
MqttPacketPingReq pingPacket = new MqttPacketPingReq();
|
||||
|
||||
assertEquals(MqttPacketPingResp.class, thread.handlePacket(pingPacket).getClass());
|
||||
thread.handlePacket(pingPacket);
|
||||
|
||||
assertEquals(MqttPacketPingResp.class, thread.sentPackets.poll().getClass());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -37,7 +62,9 @@ public class MqttBrokerTest {
|
|||
MqttConnectionMockThread thread = new MqttConnectionMockThread();
|
||||
MqttPacketDisconnect disconnectPacket = new MqttPacketDisconnect();
|
||||
|
||||
assertEquals(null, thread.handlePacket(disconnectPacket));
|
||||
thread.handlePacket(disconnectPacket);
|
||||
|
||||
assertEquals(null, thread.sentPackets.poll());
|
||||
assertTrue(thread.isShutdown());
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue