diff --git a/parser/src/main/java/org/dna/mqtt/moquette/proto/MqttDecoder.java b/parser/src/main/java/org/dna/mqtt/moquette/proto/MqttDecoder.java index c28a65bf..c56df86f 100644 --- a/parser/src/main/java/org/dna/mqtt/moquette/proto/MqttDecoder.java +++ b/parser/src/main/java/org/dna/mqtt/moquette/proto/MqttDecoder.java @@ -18,7 +18,7 @@ public abstract class MqttDecoder extends MessageDecoderAdapter { return NEED_DATA; } byte h1 = in.get(); - byte messageType = (byte) ((h1 & 0x0010) >> 4); + byte messageType = (byte) ((h1 & 0x00F0) >> 4); boolean dupFlag = ((byte) ((h1 & 0x0008) >> 3) == 1); byte qosLevel = (byte) ((h1 & 0x0006) >> 1); boolean retainFlag = ((byte) (h1 & 0x0001) == 1); diff --git a/parser/src/test/java/org/dna/mqtt/moquette/proto/ConnAckDecoderTest.java b/parser/src/test/java/org/dna/mqtt/moquette/proto/ConnAckDecoderTest.java index fb491acd..43a8a27a 100644 --- a/parser/src/test/java/org/dna/mqtt/moquette/proto/ConnAckDecoderTest.java +++ b/parser/src/test/java/org/dna/mqtt/moquette/proto/ConnAckDecoderTest.java @@ -1,15 +1,14 @@ package org.dna.mqtt.moquette.proto; -import org.dna.mqtt.moquette.proto.ConnAckDecoder; -import org.apache.mina.filter.codec.demux.MessageDecoderResult; -import org.dna.mqtt.moquette.proto.messages.AbstractMessage; -import org.apache.mina.filter.codec.demux.MessageDecoder; import org.apache.mina.core.buffer.IoBuffer; +import org.apache.mina.filter.codec.demux.MessageDecoder; +import org.apache.mina.filter.codec.demux.MessageDecoderResult; import org.dna.mqtt.moquette.proto.TestUtils.MockProtocolDecoderOutput; +import org.dna.mqtt.moquette.proto.messages.AbstractMessage; import org.dna.mqtt.moquette.proto.messages.ConnAckMessage; +import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; /** * * @author andrea @@ -50,6 +49,7 @@ public class ConnAckDecoderTest { assertNotNull(m_mockProtoDecoder.getMessage()); assertEquals(MessageDecoder.OK, res); assertEquals(ConnAckMessage.CONNECTION_ACCEPTED, m_mockProtoDecoder.getMessage().getReturnCode()); + assertEquals(AbstractMessage.CONNACK, m_mockProtoDecoder.getMessage().getMessageType()); } private void initHeader(IoBuffer buff) { diff --git a/parser/src/test/java/org/dna/mqtt/moquette/proto/ConnectDecoderTest.java b/parser/src/test/java/org/dna/mqtt/moquette/proto/ConnectDecoderTest.java index 8c74f381..b24816d9 100644 --- a/parser/src/test/java/org/dna/mqtt/moquette/proto/ConnectDecoderTest.java +++ b/parser/src/test/java/org/dna/mqtt/moquette/proto/ConnectDecoderTest.java @@ -1,18 +1,15 @@ package org.dna.mqtt.moquette.proto; -import org.dna.mqtt.moquette.proto.ConnectDecoder; -import org.dna.mqtt.moquette.proto.Utils; -import org.dna.mqtt.moquette.proto.messages.AbstractMessage; -import org.dna.mqtt.moquette.proto.messages.ConnectMessage; -import org.dna.mqtt.moquette.proto.TestUtils.MockProtocolDecoderOutput; -import org.apache.mina.filter.codec.demux.MessageDecoderResult; import java.io.UnsupportedEncodingException; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.filter.codec.demux.MessageDecoder; - +import org.apache.mina.filter.codec.demux.MessageDecoderResult; +import org.dna.mqtt.moquette.proto.TestUtils.MockProtocolDecoderOutput; +import org.dna.mqtt.moquette.proto.messages.AbstractMessage; +import org.dna.mqtt.moquette.proto.messages.ConnectMessage; +import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; public class ConnectDecoderTest { @@ -121,6 +118,7 @@ public class ConnectDecoderTest { //Verify verifyBaseHeader(m_mockProtoDecoder.getMessage()); + assertEquals(AbstractMessage.CONNECT, m_mockProtoDecoder.getMessage().getMessageType()); assertEquals("ABCDEFGH", m_mockProtoDecoder.getMessage().getClientID()); assertEquals("Topic", m_mockProtoDecoder.getMessage().getWillTopic()); assertEquals("Message", m_mockProtoDecoder.getMessage().getWillMessage()); diff --git a/parser/src/test/java/org/dna/mqtt/moquette/proto/PubAckDecoderTest.java b/parser/src/test/java/org/dna/mqtt/moquette/proto/PubAckDecoderTest.java index 43e78974..15274f94 100644 --- a/parser/src/test/java/org/dna/mqtt/moquette/proto/PubAckDecoderTest.java +++ b/parser/src/test/java/org/dna/mqtt/moquette/proto/PubAckDecoderTest.java @@ -1,16 +1,14 @@ package org.dna.mqtt.moquette.proto; -import org.dna.mqtt.moquette.proto.PubAckDecoder; -import org.dna.mqtt.moquette.proto.Utils; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.filter.codec.demux.MessageDecoder; import org.apache.mina.filter.codec.demux.MessageDecoderResult; import org.dna.mqtt.moquette.proto.TestUtils.MockProtocolDecoderOutput; -import org.dna.mqtt.moquette.proto.messages.PubAckMessage; import org.dna.mqtt.moquette.proto.messages.AbstractMessage; +import org.dna.mqtt.moquette.proto.messages.PubAckMessage; +import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; /** * @@ -41,6 +39,7 @@ public class PubAckDecoderTest { assertNotNull(m_mockProtoDecoder.getMessage()); assertEquals(MessageDecoder.OK, res); assertEquals(messageId, m_mockProtoDecoder.getMessage().getMessageID()); + assertEquals(AbstractMessage.PUBACK, m_mockProtoDecoder.getMessage().getMessageType()); } private void initHeader(IoBuffer buff, int messageID) { diff --git a/parser/src/test/java/org/dna/mqtt/moquette/proto/PublishDecoderTest.java b/parser/src/test/java/org/dna/mqtt/moquette/proto/PublishDecoderTest.java index 5f8d6fb1..6a2a33e8 100644 --- a/parser/src/test/java/org/dna/mqtt/moquette/proto/PublishDecoderTest.java +++ b/parser/src/test/java/org/dna/mqtt/moquette/proto/PublishDecoderTest.java @@ -1,16 +1,14 @@ package org.dna.mqtt.moquette.proto; -import org.dna.mqtt.moquette.proto.PublishDecoder; -import org.dna.mqtt.moquette.proto.Utils; -import org.apache.mina.filter.codec.demux.MessageDecoderResult; -import org.dna.mqtt.moquette.proto.messages.PublishMessage; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.filter.codec.demux.MessageDecoder; +import org.apache.mina.filter.codec.demux.MessageDecoderResult; import org.dna.mqtt.moquette.proto.TestUtils.MockProtocolDecoderOutput; import org.dna.mqtt.moquette.proto.messages.AbstractMessage; +import org.dna.mqtt.moquette.proto.messages.PublishMessage; +import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; /** * @@ -48,6 +46,7 @@ public class PublishDecoderTest { assertEquals(MessageDecoder.OK, res); assertEquals("Fake Topic", m_mockProtoDecoder.getMessage().getTopicName()); assertNull(m_mockProtoDecoder.getMessage().getMessageID()); + assertEquals(AbstractMessage.PUBLISH, m_mockProtoDecoder.getMessage().getMessageType()); } @Test diff --git a/parser/src/test/java/org/dna/mqtt/moquette/proto/SubAckDecoderTest.java b/parser/src/test/java/org/dna/mqtt/moquette/proto/SubAckDecoderTest.java index 0b376699..7505e07f 100644 --- a/parser/src/test/java/org/dna/mqtt/moquette/proto/SubAckDecoderTest.java +++ b/parser/src/test/java/org/dna/mqtt/moquette/proto/SubAckDecoderTest.java @@ -1,17 +1,15 @@ package org.dna.mqtt.moquette.proto; -import org.dna.mqtt.moquette.proto.SubAckDecoder; -import org.dna.mqtt.moquette.proto.Utils; import java.util.List; -import org.dna.mqtt.moquette.proto.messages.SubAckMessage; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.filter.codec.demux.MessageDecoderResult; import org.dna.mqtt.moquette.proto.TestUtils.MockProtocolDecoderOutput; import org.dna.mqtt.moquette.proto.messages.AbstractMessage; import org.dna.mqtt.moquette.proto.messages.AbstractMessage.QOSType; +import org.dna.mqtt.moquette.proto.messages.SubAckMessage; +import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; /** * @@ -46,10 +44,11 @@ public class SubAckDecoderTest { assertEquals(QOSType.LEAST_ONE, qoses.get(0)); assertEquals(QOSType.MOST_ONE, qoses.get(1)); assertEquals(QOSType.MOST_ONE, qoses.get(2)); + assertEquals(AbstractMessage.SUBACK, m_mockProtoDecoder.getMessage().getMessageType()); } private void initHeaderQos(IoBuffer buff, int messageID, QOSType... qoss) throws IllegalAccessException { - buff.clear().put((byte) (AbstractMessage.SUBSCRIBE << 4)). + buff.clear().put((byte) (AbstractMessage.SUBACK << 4)). put(Utils.encodeRemainingLength(3)); Utils.writeWord(buff, messageID); diff --git a/parser/src/test/java/org/dna/mqtt/moquette/proto/SubscribeDecoderTest.java b/parser/src/test/java/org/dna/mqtt/moquette/proto/SubscribeDecoderTest.java index ebae75f3..e4abe329 100644 --- a/parser/src/test/java/org/dna/mqtt/moquette/proto/SubscribeDecoderTest.java +++ b/parser/src/test/java/org/dna/mqtt/moquette/proto/SubscribeDecoderTest.java @@ -1,16 +1,14 @@ package org.dna.mqtt.moquette.proto; -import org.dna.mqtt.moquette.proto.SubscribeDecoder; -import org.dna.mqtt.moquette.proto.Utils; -import org.dna.mqtt.moquette.proto.messages.SubscribeMessage.Couple; -import org.dna.mqtt.moquette.proto.messages.SubscribeMessage; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.filter.codec.demux.MessageDecoderResult; import org.dna.mqtt.moquette.proto.TestUtils.MockProtocolDecoderOutput; import org.dna.mqtt.moquette.proto.messages.AbstractMessage; +import org.dna.mqtt.moquette.proto.messages.SubscribeMessage; +import org.dna.mqtt.moquette.proto.messages.SubscribeMessage.Couple; +import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; /** * @@ -56,6 +54,7 @@ public class SubscribeDecoderTest { //Verify assertEquals(MessageDecoderResult.OK, res); assertEquals(2, m_mockProtoDecoder.getMessage().subscriptions().size()); + assertEquals(AbstractMessage.SUBSCRIBE, m_mockProtoDecoder.getMessage().getMessageType()); } private void initHeaderBadQos(IoBuffer buff) { diff --git a/parser/src/test/java/org/dna/mqtt/moquette/proto/UnsubscribeDecoderTest.java b/parser/src/test/java/org/dna/mqtt/moquette/proto/UnsubscribeDecoderTest.java index ee402018..ca56daf9 100644 --- a/parser/src/test/java/org/dna/mqtt/moquette/proto/UnsubscribeDecoderTest.java +++ b/parser/src/test/java/org/dna/mqtt/moquette/proto/UnsubscribeDecoderTest.java @@ -1,15 +1,13 @@ package org.dna.mqtt.moquette.proto; -import org.dna.mqtt.moquette.proto.Utils; -import org.dna.mqtt.moquette.proto.UnsubscribeDecoder; -import org.dna.mqtt.moquette.proto.messages.UnsubscribeMessage; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.filter.codec.demux.MessageDecoderResult; import org.dna.mqtt.moquette.proto.TestUtils.MockProtocolDecoderOutput; import org.dna.mqtt.moquette.proto.messages.AbstractMessage; +import org.dna.mqtt.moquette.proto.messages.UnsubscribeMessage; +import static org.junit.Assert.*; import org.junit.Before; import org.junit.Test; -import static org.junit.Assert.*; /** * @@ -57,6 +55,7 @@ public class UnsubscribeDecoderTest { assertEquals(2, m_mockProtoDecoder.getMessage().topics().size()); assertEquals(topic1, m_mockProtoDecoder.getMessage().topics().get(0)); assertEquals(topic2, m_mockProtoDecoder.getMessage().topics().get(1)); + assertEquals(AbstractMessage.UNSUBSCRIBE, m_mockProtoDecoder.getMessage().getMessageType()); } private void initHeaderBadQos(IoBuffer buff) { @@ -71,7 +70,7 @@ public class UnsubscribeDecoderTest { } topicBuffer.flip(); - buff.clear().put((byte)(AbstractMessage.SUBSCRIBE << 4 | (byte)0x02)) + buff.clear().put((byte)(AbstractMessage.UNSUBSCRIBE << 4 | (byte)0x02)) .put(Utils.encodeRemainingLength(topicBuffer.remaining())); buff.put(topicBuffer); }