diff --git a/src/main/java/io/mapsmessaging/api/MessageBuilder.java b/src/main/java/io/mapsmessaging/api/MessageBuilder.java index 8a9b8399e..1a1446079 100644 --- a/src/main/java/io/mapsmessaging/api/MessageBuilder.java +++ b/src/main/java/io/mapsmessaging/api/MessageBuilder.java @@ -86,6 +86,7 @@ public MessageBuilder(Message previousMessage) { expiry = (previousMessage.getExpiry() - System.currentTimeMillis()); creation = previousMessage.getCreation(); contentType = previousMessage.getContentType(); + responseTopic = previousMessage.getResponseTopic(); if(previousMessage.getCorrelationData() != null && !previousMessage.isCorrelationDataByteArray()) { correlationData = new String(previousMessage.getCorrelationData()); } diff --git a/src/test/java/io/mapsmessaging/api/MessageBuilderTest.java b/src/test/java/io/mapsmessaging/api/MessageBuilderTest.java index 9aa4418a9..74ede91ac 100644 --- a/src/test/java/io/mapsmessaging/api/MessageBuilderTest.java +++ b/src/test/java/io/mapsmessaging/api/MessageBuilderTest.java @@ -137,6 +137,7 @@ void copyConstructor_preservesMessageFields_andIsolatesMaps() { Message original = new MessageBuilder() .setCreation(creation) .setSchemaId("schema-id") + .setResponseTopic("reply/topic") .setMeta(meta) .setDataMap(dataMap) .build(); @@ -145,6 +146,7 @@ void copyConstructor_preservesMessageFields_andIsolatesMaps() { Assertions.assertEquals(creation, copy.getCreation()); Assertions.assertEquals("schema-id", copy.getSchemaId()); + Assertions.assertEquals("reply/topic", copy.getResponseTopic()); Assertions.assertNotSame(original.getMeta(), copy.getMeta()); Assertions.assertNotSame(original.getDataMap(), copy.getDataMap()); @@ -153,4 +155,13 @@ void copyConstructor_preservesMessageFields_andIsolatesMaps() { Assertions.assertFalse(original.getMeta().containsKey("copy-meta")); Assertions.assertFalse(original.getDataMap().containsKey("copy-data")); } + + @Test + void copyConstructor_preservesNullResponseTopic() { + Message original = new MessageBuilder().build(); + + Message copy = new MessageBuilder(original).build(); + + Assertions.assertNull(copy.getResponseTopic()); + } } diff --git a/src/test/java/io/mapsmessaging/engine/destination/MessageOverridesTest.java b/src/test/java/io/mapsmessaging/engine/destination/MessageOverridesTest.java index 338ecb076..919d4902e 100644 --- a/src/test/java/io/mapsmessaging/engine/destination/MessageOverridesTest.java +++ b/src/test/java/io/mapsmessaging/engine/destination/MessageOverridesTest.java @@ -138,6 +138,7 @@ void applyOverrides_mergesMeta_andDataMap_creatingMapsWhenNull() { Assertions.assertEquals("x", updated.getDataMap().get("d1").getData()); Assertions.assertEquals(42L, updated.getDataMap().get("d2").getData()); + Assertions.assertEquals("resp/topic", updated.getResponseTopic()); Assertions.assertFalse(message.getMeta().containsKey("m2")); Assertions.assertFalse(message.getDataMap().containsKey("d2")); }