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); }