コード例 #1
0
        public void GetClient_ProducerAndConsumerWithEqualClientConfig_SameClientReturned()
        {
            var producer = (MqttProducer)_broker.GetProducer(
                new MqttProducerEndpoint("some-topic")
            {
                Configuration = new MqttClientConfig
                {
                    ClientId       = "client1",
                    ChannelOptions = new MqttClientTcpOptions
                    {
                        Server = "mqtt-server"
                    }
                }
            });
            var consumer = (MqttConsumer)_broker.AddConsumer(
                new MqttConsumerEndpoint("some-topic")
            {
                Configuration = new MqttClientConfig
                {
                    ClientId       = "client1",
                    ChannelOptions = new MqttClientTcpOptions
                    {
                        Server = "mqtt-server"
                    }
                }
            });

            var factory = new MqttClientsCache(
                new MqttNetClientFactory(Substitute.For <IMqttNetLogger>()),
                Substitute.For <IBrokerCallbacksInvoker>(),
                _logger);
            var client1 = factory.GetClient(producer);
            var client2 = factory.GetClient(consumer);

            client1.Should().NotBeNull();
            client2.Should().NotBeNull();
            client2.Should().BeSameAs(client1);
        }