public void GetClient_ProducersWithSameClientConfig_SameClientReturned() { var config = new MqttClientConfig { ChannelOptions = new MqttClientTcpOptions { Server = "mqtt-server" } }; var producer1 = (MqttProducer)_broker.GetProducer( new MqttProducerEndpoint("some-topic") { Configuration = config }); var producer2 = (MqttProducer)_broker.GetProducer( new MqttProducerEndpoint("some-topic") { Configuration = config }); var factory = new MqttClientsCache( new MqttNetClientFactory(Substitute.For <IMqttNetLogger>()), Substitute.For <IBrokerCallbacksInvoker>(), _logger); var client1 = factory.GetClient(producer1); var client2 = factory.GetClient(producer2); client1.Should().NotBeNull(); client2.Should().NotBeNull(); client2.Should().BeSameAs(client1); }