Ejemplo n.º 1
0
        public async Task AnnounceTopics()
        {
            var configs  = new MetricConfig[0];
            var messages = new[] { new MqttApplicationMessage {
                                       Topic = "announce_1"
                                   }, new MqttApplicationMessage {
                                       Topic = "announce_2"
                                   }, new MqttApplicationMessage {
                                       Topic = "announce_3"
                                   } };
            var ct = CancellationToken.None;

            options.SetupGet(o => o.ClientId).Returns("test_client");
            client.SetupGet(c => c.IsConnected).Returns(true);

            builder.Setup(b => b.BuildAnnounceMessages(configs, options.Object)).Returns(messages);

            foreach (var message in messages)
            {
                client.Setup(c => c.PublishAsync(message, ct)).Verifiable($"Message {message.Topic} was not published!");
            }

            var adapter = new MqttAdapter(options.Object, factory.Object, new RetryOptions(null), builder.Object, logger.Object);
            await adapter.Announce(configs, ct);

            client.VerifyAll();
        }
Ejemplo n.º 2
0
        public async Task NotifyAboutSuccessfulMeasurement()
        {
            var measurement = new SuccessfulMeasurement(new Metric("successful/topic"), "success");
            var ct          = CancellationToken.None;

            options.SetupGet(o => o.ClientId).Returns("test_client");
            client.SetupGet(c => c.IsConnected).Returns(true);

            client.Setup(
                c => c.PublishAsync(It.Is <MqttApplicationMessage>(m =>
                                                                   m.Topic == $"{measurement.Metric.Topic}" && m.ConvertPayloadToString() == measurement.Result), ct))
            .Verifiable("Expected message was not published!");

            var adapter = new MqttAdapter(options.Object, factory.Object, new RetryOptions(null), builder.Object, logger.Object);
            await adapter.Notify(measurement, ct);

            client.VerifyAll();
        }