Beispiel #1
0
        public void SingleTopic()
        {
            // Message Specs________________
            // <A2><08><00><03><00><04>fred (Unsubscribe to topic fred)
            var sampleMessage = new[]
            {
                (byte)0xA2,
                (byte)0x08,
                (byte)0x00,
                (byte)0x03,
                (byte)0x00,
                (byte)0x04,
                (byte)'f',
                (byte)'r',
                (byte)'e',
                (byte)'d',
            };

            MqttMessage baseMessage = MqttMessage.CreateFrom(sampleMessage);

            Console.WriteLine(baseMessage.ToString());

            // check that the message was correctly identified as a connect message.
            Assert.IsType <MqttUnsubscribeMessage>(baseMessage);
            MqttUnsubscribeMessage message = (MqttUnsubscribeMessage)baseMessage;

            Assert.Equal <int>(1, message.Payload.Subscriptions.Count);
            Assert.True(message.Payload.Subscriptions.Contains("fred"));
        }
Beispiel #2
0
        public void MultiTopic()
        {
            // double topic unsubscribe
            var expected = new[]
            {
                (byte)0xA2,
                (byte)0x0E,
                (byte)0x00,
                (byte)0x03,
                (byte)0x00,
                (byte)0x04,
                (byte)'f',
                (byte)'r',
                (byte)'e',
                (byte)'d',
                (byte)0x00,
                (byte)0x04,
                (byte)'m',
                (byte)'a',
                (byte)'r',
                (byte)'k',
            };

            MqttMessage msg = new MqttUnsubscribeMessage()
                              .FromTopic("fred")
                              .FromTopic("mark")
                              .WithMessageIdentifier(3)
                              .ExpectAcknowledgement();

            Console.WriteLine(msg);

            byte[] actual = MessageSerializationHelper.GetMessageBytes(msg);

            Assert.Equal <int>(expected.Length, actual.Length);
            Assert.Equal <byte>(expected[0], actual[0]);   // msg type of header
            Assert.Equal <byte>(expected[1], actual[1]);   // remaining length
            Assert.Equal <byte>(expected[2], actual[2]);   // Start of VH: MsgID Byte1
            Assert.Equal <byte>(expected[3], actual[3]);   // MsgID Byte 2
            Assert.Equal <byte>(expected[4], actual[4]);   // Topic Length B1
            Assert.Equal <byte>(expected[5], actual[5]);   // Topic Length B2
            Assert.Equal <byte>(expected[6], actual[6]);   // f
            Assert.Equal <byte>(expected[7], actual[7]);   // r
            Assert.Equal <byte>(expected[8], actual[8]);   // e
            Assert.Equal <byte>(expected[9], actual[9]);   // d
            Assert.Equal <byte>(expected[10], actual[10]); // Topic Length B1
            Assert.Equal <byte>(expected[11], actual[11]); // Topic Length B2
            Assert.Equal <byte>(expected[12], actual[12]); // f
            Assert.Equal <byte>(expected[13], actual[13]); // r
            Assert.Equal <byte>(expected[14], actual[14]); // e
            Assert.Equal <byte>(expected[15], actual[15]); // d
        }
Beispiel #3
0
        public void ClearSubscriptions()
        {
            MqttUnsubscribeMessage msg = new MqttUnsubscribeMessage()
                                         .FromTopic("fred")
                                         .FromTopic("mark")
                                         .WithMessageIdentifier(3)
                                         .ExpectAcknowledgement();

            Console.WriteLine(msg);

            Assert.Equal <int>(2, msg.Payload.Subscriptions.Count);

            msg.Payload.ClearSubscriptions();

            Assert.Equal <int>(0, msg.Payload.Subscriptions.Count);
        }