diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/FilterParserTests-context.xml b/org.springframework.integration/src/test/java/org/springframework/integration/config/FilterParserTests-context.xml
index 23fd805dfd..bec8933f79 100644
--- a/org.springframework.integration/src/test/java/org/springframework/integration/config/FilterParserTests-context.xml
+++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/FilterParserTests-context.xml
@@ -9,13 +9,22 @@
-
+
-
+
+
+
-
+
+
+
+
+
+
+
diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/config/FilterParserTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/config/FilterParserTests.java
index 86579f340d..cafa13d413 100644
--- a/org.springframework.integration/src/test/java/org/springframework/integration/config/FilterParserTests.java
+++ b/org.springframework.integration/src/test/java/org/springframework/integration/config/FilterParserTests.java
@@ -29,6 +29,7 @@ import org.springframework.integration.channel.MessageChannel;
import org.springframework.integration.channel.PollableChannel;
import org.springframework.integration.message.Message;
import org.springframework.integration.message.StringMessage;
+import org.springframework.integration.message.selector.MessageSelector;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.StringUtils;
@@ -40,34 +41,66 @@ import org.springframework.util.StringUtils;
@ContextConfiguration
public class FilterParserTests {
- @Autowired @Qualifier("input")
- MessageChannel input;
+ @Autowired @Qualifier("adapterInput")
+ MessageChannel adapterInput;
- @Autowired @Qualifier("output")
- PollableChannel output;
+ @Autowired @Qualifier("adapterOutput")
+ PollableChannel adapterOutput;
+
+ @Autowired @Qualifier("implementationInput")
+ MessageChannel implementationInput;
+
+ @Autowired @Qualifier("implementationOutput")
+ PollableChannel implementationOutput;
@Test
- public void filterAccepts() {
- input.send(new StringMessage("test"));
- Message> reply = output.receive(0);
+ public void filterWithSelectorAdapterAccepts() {
+ adapterInput.send(new StringMessage("test"));
+ Message> reply = adapterOutput.receive(0);
assertNotNull(reply);
assertEquals("test", reply.getPayload());
}
@Test
- public void filterRejects() {
- input.send(new StringMessage(""));
- Message> reply = output.receive(0);
+ public void filterWithSelectorAdapterRejects() {
+ adapterInput.send(new StringMessage(""));
+ Message> reply = adapterOutput.receive(0);
+ assertNull(reply);
+ }
+
+ @Test
+ public void filterWithSelectorImplementationAccepts() {
+ implementationInput.send(new StringMessage("test"));
+ Message> reply = implementationOutput.receive(0);
+ assertNotNull(reply);
+ assertEquals("test", reply.getPayload());
+ }
+
+ @Test
+ public void filterWithSelectorImplementationRejects() {
+ implementationInput.send(new StringMessage(""));
+ Message> reply = implementationOutput.receive(0);
assertNull(reply);
}
- public static class TestSelector {
+ public static class TestSelectorBean {
public boolean hasText(String s) {
return StringUtils.hasText(s);
}
}
+
+ public static class TestSelectorImpl implements MessageSelector {
+
+ public boolean accept(Message> message) {
+ if (message != null && message.getPayload() instanceof String) {
+ return StringUtils.hasText((String) message.getPayload());
+ }
+ return false;
+ }
+ }
+
}