public void Should_initialize_MQTTClient() { var args = new List <IManagedMqttClientOptions>(); MqttClientMock.Setup(m => m.StartAsync(Capture.In(args))); var subject = new MqttSink(Options, MqttClientMock.Object); var actualOptions = args.First(); MqttClientTcpOptions actualChannelOptions = actualOptions.ClientOptions.ChannelOptions as MqttClientTcpOptions; MqttClientMock.Verify(it => it.StartAsync(It.IsAny <IManagedMqttClientOptions>())); Assert.AreEqual(actualOptions.ClientOptions.Credentials.Username, MqttClientOptions.ClientOptions.Credentials.Username); Assert.AreEqual(actualOptions.ClientOptions.Credentials.Password, MqttClientOptions.ClientOptions.Credentials.Password); Assert.AreEqual(actualChannelOptions.Server, MqttClientTcpOptions.Server); Assert.AreEqual(actualChannelOptions.Port, MqttClientTcpOptions.Port); }
public void Should_publish_value_to_all_configured_topics() { var args = new List <ManagedMqttApplicationMessage>(); MqttClientMock.Setup(it => it.PublishAsync(Capture.In(args))); var subject = new MqttSink(Options, MqttClientMock.Object); var value = "Batman"; subject.Consume(value); Assert.AreEqual(2, args.Count()); var first = args[0]; var second = args[1]; Assert.AreEqual(Topics[0], first.ApplicationMessage.Topic); Assert.AreEqual(value, first.ApplicationMessage.Payload); Assert.AreEqual(Topics[1], second.ApplicationMessage.Topic); Assert.AreEqual(value, second.ApplicationMessage.Payload); }