From 1b1f95c0045fde7bf028c118e962c5c0788f2a27 Mon Sep 17 00:00:00 2001 From: Tim Ysewyn Date: Wed, 20 Aug 2014 14:14:20 +0200 Subject: [PATCH] Java DSL: Fix EnricherSpec to prevent assertions Fixes: https://github.com/spring-projects/spring-integration-extensions/issues/101 --- .../integration/dsl/EnricherSpec.java | 9 ++- .../dsl/test/IntegrationFlowTests.java | 69 +++++++++++++++++++ 2 files changed, 76 insertions(+), 2 deletions(-) diff --git a/spring-integration-java-dsl/src/main/java/org/springframework/integration/dsl/EnricherSpec.java b/spring-integration-java-dsl/src/main/java/org/springframework/integration/dsl/EnricherSpec.java index 2b8d8d6..52dafba 100644 --- a/spring-integration-java-dsl/src/main/java/org/springframework/integration/dsl/EnricherSpec.java +++ b/spring-integration-java-dsl/src/main/java/org/springframework/integration/dsl/EnricherSpec.java @@ -33,6 +33,7 @@ import org.springframework.util.Assert; /** * @author Artem Bilan + * @author Tim Ysewyn */ public class EnricherSpec extends MessageHandlerSpec { @@ -128,8 +129,12 @@ public class EnricherSpec extends MessageHandlerSpec message = MessageBuilder.withPayload(new TestPojo("Bar")) + .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel) + .build(); + this.enricherInput2.send(message); + Message receive = replyChannel.receive(5000); + assertNotNull(receive); + assertNull(receive.getHeaders().get("foo")); + Object payload = receive.getPayload(); + assertThat(payload, instanceOf(TestPojo.class)); + TestPojo result = (TestPojo) payload; + assertEquals("Bar Bar", result.getName()); + assertNotNull(result.getDate()); + assertThat(new Date(), Matchers.greaterThanOrEqualTo(result.getDate())); + } + + @Test + public void testContentEnricher3() { + QueueChannel replyChannel = new QueueChannel(); + Message message = MessageBuilder.withPayload(new TestPojo("Bar")) + .setHeader(MessageHeaders.REPLY_CHANNEL, replyChannel) + .build(); + this.enricherInput3.send(message); + Message receive = replyChannel.receive(5000); + assertNotNull(receive); + assertEquals("Bar Bar", receive.getHeaders().get("foo")); + Object payload = receive.getPayload(); + assertThat(payload, instanceOf(TestPojo.class)); + TestPojo result = (TestPojo) payload; + assertEquals("Bar", result.getName()); + assertNull(result.getDate()); + } + @Test public void testSplitterResequencer() { QueueChannel replyChannel = new QueueChannel(); @@ -1404,6 +1448,31 @@ public class IntegrationFlowTests { .get(); } + @Bean + @DependsOn("enrichFlow") + public IntegrationFlow enricherFlow2() { + return IntegrationFlows.fromFixedMessageChannel("enricherInput2") + .enrich(e -> e.requestChannel("enrichChannel") + .requestPayloadExpression("payload") + .shouldClonePayload(false) + .propertyExpression("name", "payload['name']") + .propertyExpression("date", "new java.util.Date()") + ) + .get(); + } + + @Bean + @DependsOn("enrichFlow") + public IntegrationFlow enricherFlow3() { + return IntegrationFlows.fromFixedMessageChannel("enricherInput3") + .enrich(e -> e.requestChannel("enrichChannel") + .requestPayloadExpression("payload") + .shouldClonePayload(false) + .headerExpression("foo", "payload['name']") + ) + .get(); + } + @Bean public IntegrationFlow enrichFlow() { return IntegrationFlows.from("enrichChannel")