INT-1377, polishing, added test for expression based router dynamics

This commit is contained in:
Oleg Zhurakousky
2010-10-13 15:14:33 -04:00
parent 713baedf43
commit 5b6a96c34f
6 changed files with 174 additions and 162 deletions

View File

@@ -19,7 +19,7 @@
<queue capacity="1" />
</channel>
<router input-channel="expressionRouter" expression="payload.name"
<router id="spelRouter" input-channel="expressionRouter" expression="payload.name"
default-output-channel="defaultChannelForExpression"
ignore-channel-name-resolution-failures="true">
<mapping value="foo" channel="fooChannelForExpression"/>

View File

@@ -23,10 +23,14 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.integration.Message;
import org.springframework.integration.MessageChannel;
import org.springframework.integration.config.ConsumerEndpointFactoryBean;
import org.springframework.integration.core.PollableChannel;
import org.springframework.integration.router.AbstractMessageRouter;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.integration.test.util.TestUtils;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -39,6 +43,10 @@ public class RouterWithMappingTests {
@Autowired
private MessageChannel expressionRouter;
@Autowired
@Qualifier("spelRouter")
private ConsumerEndpointFactoryBean spelRouter;
@Autowired
private MessageChannel pojoRouter;
@@ -79,6 +87,13 @@ public class RouterWithMappingTests {
assertNotNull(defaultChannelForExpression.receive(0));
assertNull(fooChannelForExpression.receive(0));
assertNull(barChannelForExpression.receive(0));
// validate dynamics
AbstractMessageRouter router = (AbstractMessageRouter) TestUtils.getPropertyValue(spelRouter, "handler");
router.setChannelMapping("baz", "fooChannelForExpression");
expressionRouter.send(message3);
assertNull(defaultChannelForExpression.receive(10));
assertNotNull(fooChannelForExpression.receive(10));
assertNull(barChannelForExpression.receive(0));
}
@Test