Beispiel #1
0
        public async Task HandlesDirectMethodTopics(string topic)
        {
            var publishInfo = new MqttPublishInfo(topic, new byte[0]);

            var(connectionRegistry, identityProvider) = GetHandlerDependencies();

            var sut = new DirectMethodHandler(connectionRegistry, identityProvider);

            var isHandled = await sut.HandleAsync(publishInfo);

            Assert.True(isHandled);
        }
Beispiel #2
0
        public async Task CapturesDeviceIdentityFromResponseTopic()
        {
            var listenerCapture = new DeviceListenerCapture();
            var publishInfo     = new MqttPublishInfo("$edgehub/device_id/methods/res/200/?$rid=abcde", new byte[0]);

            var(connectionRegistry, identityProvider) = GetHandlerDependencies(listenerCapture);

            var sut = new DirectMethodHandler(connectionRegistry, identityProvider);

            await sut.HandleAsync(publishInfo);

            Assert.IsType <DeviceIdentity>(listenerCapture.Captured.Identity);
            Assert.Equal("device_id", ((DeviceIdentity)listenerCapture.Captured.Identity).DeviceId);
        }
Beispiel #3
0
        public async Task AddsSystemPropertiesToMessage()
        {
            var listenerCapture = new DeviceListenerCapture();
            var publishInfo     = new MqttPublishInfo("$edgehub/device_id/module_id/methods/res/200/?$rid=abcde", new byte[0]);

            var(connectionRegistry, identityProvider) = GetHandlerDependencies(listenerCapture);

            var sut = new DirectMethodHandler(connectionRegistry, identityProvider);

            await sut.HandleAsync(publishInfo);

            var message = listenerCapture.Captured.CapturedMessage;

            Assert.Contains(SystemProperties.CorrelationId, message.Properties);
            Assert.Equal("abcde", message.Properties[SystemProperties.CorrelationId]);
            Assert.Contains(SystemProperties.StatusCode, message.Properties);
            Assert.Equal("200", message.Properties[SystemProperties.StatusCode]);
        }