public async Task Fire_Application_Message_Received_Event()
        {
            using (var testEnvironment = CreateTestEnvironment())
            {
                var server = await testEnvironment.StartServer();

                InterceptingPublishEventArgs eventArgs = null;
                server.InterceptingPublishAsync += e =>
                {
                    eventArgs = e;
                    return(PlatformAbstractionLayer.CompletedTask);
                };

                var client = await testEnvironment.ConnectClient();

                await client.PublishStringAsync("The_Topic", "The_Payload");

                await LongTestDelay();

                Assert.IsNotNull(eventArgs);

                Assert.IsTrue(eventArgs.ClientId.StartsWith(nameof(Fire_Application_Message_Received_Event)));
                Assert.AreEqual("The_Topic", eventArgs.ApplicationMessage.Topic);
                Assert.AreEqual("The_Payload", eventArgs.ApplicationMessage.ConvertPayloadToString());
            }
        }
Beispiel #2
0
        public MqttPacket Create(MqttPublishPacket publishPacket, InterceptingPublishEventArgs interceptingPublishEventArgs)
        {
            if (publishPacket == null)
            {
                throw new ArgumentNullException(nameof(publishPacket));
            }

            var pubRecPacket = new MqttPubRecPacket
            {
                PacketIdentifier = publishPacket.PacketIdentifier,
                ReasonCode       = MqttPubRecReasonCode.Success
            };

            if (interceptingPublishEventArgs != null)
            {
                pubRecPacket.ReasonCode     = (MqttPubRecReasonCode)(int)interceptingPublishEventArgs.Response.ReasonCode;
                pubRecPacket.ReasonString   = interceptingPublishEventArgs.Response.ReasonString;
                pubRecPacket.UserProperties = interceptingPublishEventArgs.Response.UserProperties;
            }

            return(pubRecPacket);
        }