diff --git a/broker/src/test/java/org/dna/mqtt/moquette/server/ServerIntegrationFuseTest.java b/broker/src/test/java/org/dna/mqtt/moquette/server/ServerIntegrationFuseTest.java index aa849f17..c900cd39 100644 --- a/broker/src/test/java/org/dna/mqtt/moquette/server/ServerIntegrationFuseTest.java +++ b/broker/src/test/java/org/dna/mqtt/moquette/server/ServerIntegrationFuseTest.java @@ -158,6 +158,22 @@ public class ServerIntegrationFuseTest { assertEquals("/topic", msg.getTopic()); } + @Test + public void testRetain_maintainMessage_againstClientDestruction() throws Exception { + m_connection = m_mqtt.blockingConnection(); + m_connection.connect(); + m_connection.publish("/topic", "Test my payload".getBytes(), QoS.AT_MOST_ONCE, true); + m_connection.disconnect(); + + BlockingConnection anotherConnection = m_mqtt.blockingConnection(); + anotherConnection.connect(); + anotherConnection.subscribe(new Topic[] {new Topic("/topic", QoS.AT_MOST_ONCE)}); + Message msg = anotherConnection.receive(); + msg.ack(); + + assertEquals("/topic", msg.getTopic()); + } + @Test public void testPublishWithQoS1() throws Exception { m_connection = m_mqtt.blockingConnection();