コード例 #1
0
        public void CanReadTopicNames()
        {
            var msgBuilder = new MqttUnsubscribeMessageBuilder()
            {
                Duplicate        = true,
                QualityOfService = QualityOfService.ExactlyOnce,
                Retain           = true,
                MessageId        = 42
            };

            var topics = new string[]
            {
                "a/b0",
                "a/b1",
                "a/b2"
            };

            msgBuilder.TopicNames = topics;

            var msg = msgBuilder.GetMessage() as MqttUnsubscribeMessage;

            Assert.AreEqual(3, msg.TopicNames.Length);
            Assert.AreEqual("a/b0", msg.TopicNames[0]);
            Assert.AreEqual("a/b1", msg.TopicNames[1]);
            Assert.AreEqual("a/b2", msg.TopicNames[2]);
        }
コード例 #2
0
        public void UnsubscribeCallsSendMessageCompleteEventWithEventData()
        {
            var are       = new AutoResetEvent(false);
            var eventData = "Test data";
            var moqSocket = new MoqSocket();
            var client    = new MqttClientProtocol(new LogCompositor(), moqSocket);
            var bldr      = new MqttUnsubscribeMessageBuilder
            {
                MessageId = 42,
            };

            client.SendMessageComplete += (sender, args) =>
            {
                var msg = args.Message as IMqttIdMessage;
                Assert.IsNotNull(msg);
                Assert.AreEqual(bldr.MessageId, msg.MessageId);
                Assert.AreSame(eventData, args.EventData);
                Assert.IsTrue(moqSocket.SentMessages.Contains(MessageType.Unsubscribe));
                are.Set();
            };

            client.SendMessageAsync(bldr, eventData, null);

            if (!are.WaitOne(5000))
            {
                Assert.Fail("SendMessageComplete event not fired for Unsubscribe.");
            }
        }
コード例 #3
0
ファイル: MqttNetMfClient.cs プロジェクト: xhowar/KittyHawkMQ
        public void UnsubscribeAsync(string[] topics, int messageId)
        {
            var msgBuilder = new MqttUnsubscribeMessageBuilder
            {
                MessageId  = messageId,
                TopicNames = topics
            };

            SendMessageAsync(msgBuilder);
        }
コード例 #4
0
        private Task UnsubscribeAsync(string[] topics, int messageId)
        {
            var msgBuilder = new MqttUnsubscribeMessageBuilder
            {
                MessageId  = messageId,
                TopicNames = topics
            };

            var tcs = new TaskCompletionSource <object>();

            _mqtt.SendMessageAsync(msgBuilder, tcs, _clientUid);
            return(tcs.Task);
        }
コード例 #5
0
        public void CanReadProtocolHeader()
        {
            var msgBuilder = new MqttUnsubscribeMessageBuilder()
            {
                Duplicate        = true,
                QualityOfService = QualityOfService.ExactlyOnce,
                Retain           = true,
                MessageId        = 42
            };

            var msg = msgBuilder.GetMessage() as MqttUnsubscribeMessage;

            Assert.AreEqual(msgBuilder.Duplicate, msg.Duplicate);
            Assert.AreEqual(msgBuilder.QualityOfService, msg.QualityOfService);
            Assert.AreEqual(msgBuilder.Retain, msg.Retain);
            Assert.AreEqual(42, msg.MessageId);
        }
コード例 #6
0
        public void MessageIdValidationCatchesOutOfRangeMessageId()
        {
            var msgBuilder = new MqttUnsubscribeMessageBuilder();

            try
            {
                msgBuilder.MessageId = 0x1FFFF;
            }
            catch (ArgumentException)
            {
                return;
            }
            catch (Exception)
            {
                Assert.Fail("Incorrect exception type thrown.");
            }

            Assert.Fail("No exception thrown for out of range MessageID");
        }
コード例 #7
0
        public void CanCreateFromMessageBuilder()
        {
            var msgBuilder = new MqttUnsubscribeMessageBuilder()
            {
                MessageId = 42
            };

            Assert.AreEqual(MessageType.Unsubscribe, msgBuilder.MessageType);
            Assert.AreEqual(QualityOfService.AtLeastOnce, msgBuilder.QualityOfService);
            Assert.AreEqual(0, msgBuilder.TopicNames.Length);

            var msg = msgBuilder.GetMessage() as MqttUnsubscribeMessage;

            Assert.IsNotNull(msg);
            Assert.AreEqual(MessageType.Unsubscribe, msg.MessageType);
            Assert.AreEqual(false, msg.Duplicate);
            Assert.AreEqual(QualityOfService.AtLeastOnce, msg.QualityOfService);
            Assert.AreEqual(false, msg.Retain);
            Assert.AreEqual(42, msg.MessageId);
            Assert.AreEqual(0, msg.TopicNames.Length);
        }