예제 #1
0
        public async Task When_Payload_Is_Invalid_Ignore()
        {
            var moduleClient = new ModuleClientForTest();
            var module       = new MyModule(moduleClient, this.logger);
            await module.InitializeAsync();

            Assert.Equal(MessageResponse.Completed, await moduleClient.RouteMessage("input1", "{ 'MachineTemperature': '30"));

            var actualOutputMessages = moduleClient.GetSentEvents("output1");

            Assert.Empty(actualOutputMessages);
        }
예제 #2
0
        public async Task When_Payload_Has_Different_Contract_Ignore()
        {
            var moduleClient = new ModuleClientForTest();
            var module       = new MyModule(moduleClient, this.logger);
            await module.InitializeAsync();

            Assert.Equal(MessageResponse.Completed, await moduleClient.RouteMessage("input1", new { wrongProperty = 30 }));

            var actualOutputMessages = moduleClient.GetSentEvents("output1");

            Assert.Empty(actualOutputMessages);
        }
예제 #3
0
        public async Task When_Temperature_Is_Lesser_Than_Default_Threshold_Ignore()
        {
            var moduleClient = new ModuleClientForTest();
            var module       = new MyModule(moduleClient, this.logger);
            await module.InitializeAsync();

            Assert.Equal(MessageResponse.Completed, await moduleClient.RouteMessage("input1", new DevicePayload {
                Machine = new MachineTelemetry {
                    Temperature = 20
                }
            }));

            var actualOutputMessages = moduleClient.GetSentEvents("output1");

            Assert.Empty(actualOutputMessages);
        }
예제 #4
0
        public async Task When_Temperature_Is_Higher_Than_Default_Threshold_Forwards_To_IotHub()
        {
            var moduleClient = new ModuleClientForTest();
            var module       = new MyModule(moduleClient, this.logger);
            await module.InitializeAsync();

            Assert.Equal(MessageResponse.Completed, await moduleClient.RouteMessage("input1", new DevicePayload {
                Machine = new MachineTelemetry {
                    Temperature = 30
                }
            }));

            var actualOutputMessages = moduleClient.GetSentEvents("output1");

            Assert.Single(actualOutputMessages);
            Assert.True(actualOutputMessages.First().Properties.ContainsKey("alert"), "Ensure 'alert' property was created");
        }
예제 #5
0
        public async Task When_Message_Is_Forwarded_Properties_Are_Copied()
        {
            var moduleClient = new ModuleClientForTest();
            var module       = new MyModule(moduleClient, this.logger);
            await module.InitializeAsync();

            var message = new Message(UTF8Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(new DevicePayload {
                Machine = new MachineTelemetry {
                    Temperature = 30
                }
            })));

            message.Properties.Add("MyProperty", "MyValue");
            Assert.Equal(MessageResponse.Completed, await moduleClient.RouteMessage("input1", message));

            var actualOutputMessages = moduleClient.GetSentEvents("output1");

            Assert.Single(actualOutputMessages);
            Assert.True(actualOutputMessages.First().Properties.ContainsKey("alert"), "Ensure 'alert' property was created");
            Assert.True(actualOutputMessages.First().Properties.ContainsKey("MyProperty"), "Ensure 'MyProperty' property was copied");
            Assert.Equal("MyValue", actualOutputMessages.First().Properties["MyProperty"]);
        }