Search in sources :

Example 1 with TestChannelResolver

use of org.springframework.integration.channel.TestChannelResolver in project spring-integration by spring-projects.

the class MethodInvokingRouterTests method testClassAsKeyResolution.

@Test
public void testClassAsKeyResolution() {
    QueueChannel stringsChannel = new QueueChannel();
    QueueChannel numbersChannel = new QueueChannel();
    TestChannelResolver channelResolver = new TestChannelResolver();
    channelResolver.addChannel("stringsChannel", stringsChannel);
    channelResolver.addChannel("numbersChannel", numbersChannel);
    MethodInvokingRouter router = new MethodInvokingRouter(new ClassAsKeyTestBean());
    router.setChannelResolver(channelResolver);
    router.setChannelMapping(String.class.getName(), "stringsChannel");
    router.setChannelMapping(Integer.class.getName(), "numbersChannel");
    Message<?> message = new GenericMessage<>("bar");
    router.handleMessage(message);
    Message<?> replyMessage = stringsChannel.receive(10000);
    assertNotNull(replyMessage);
    assertEquals(message, replyMessage);
    message = new GenericMessage<>(11);
    router.handleMessage(message);
    replyMessage = numbersChannel.receive(10000);
    assertNotNull(replyMessage);
    assertEquals(message, replyMessage);
}
Also used : GenericMessage(org.springframework.messaging.support.GenericMessage) QueueChannel(org.springframework.integration.channel.QueueChannel) TestChannelResolver(org.springframework.integration.channel.TestChannelResolver) Test(org.junit.Test)

Example 2 with TestChannelResolver

use of org.springframework.integration.channel.TestChannelResolver in project spring-integration by spring-projects.

the class MethodInvokingRouterTests method channelNameResolutionByPayloadConfiguredByMethodName.

@Test
public void channelNameResolutionByPayloadConfiguredByMethodName() {
    QueueChannel barChannel = new QueueChannel();
    TestChannelResolver channelResolver = new TestChannelResolver();
    channelResolver.addChannel("bar-channel", barChannel);
    SingleChannelNameRoutingTestBean testBean = new SingleChannelNameRoutingTestBean();
    MethodInvokingRouter router = new MethodInvokingRouter(testBean, "routePayload");
    router.setChannelResolver(channelResolver);
    Message<String> message = new GenericMessage<String>("bar");
    router.handleMessage(message);
    Message<?> replyMessage = barChannel.receive();
    assertNotNull(replyMessage);
    assertEquals(message, replyMessage);
}
Also used : GenericMessage(org.springframework.messaging.support.GenericMessage) QueueChannel(org.springframework.integration.channel.QueueChannel) TestChannelResolver(org.springframework.integration.channel.TestChannelResolver) Test(org.junit.Test)

Example 3 with TestChannelResolver

use of org.springframework.integration.channel.TestChannelResolver in project spring-integration by spring-projects.

the class MethodInvokingRouterTests method doTestChannelNameResolutionByMessage.

private void doTestChannelNameResolutionByMessage(MethodInvokingRouter router) {
    QueueChannel fooChannel = new QueueChannel();
    QueueChannel barChannel = new QueueChannel();
    TestChannelResolver channelResolver = new TestChannelResolver();
    channelResolver.addChannel("foo-channel", fooChannel);
    channelResolver.addChannel("bar-channel", barChannel);
    router.setChannelResolver(channelResolver);
    Message<String> fooMessage = new GenericMessage<String>("foo");
    Message<String> barMessage = new GenericMessage<String>("bar");
    Message<String> badMessage = new GenericMessage<String>("bad");
    router.handleMessage(fooMessage);
    Message<?> result1 = fooChannel.receive(0);
    assertNotNull(result1);
    assertEquals("foo", result1.getPayload());
    router.handleMessage(barMessage);
    Message<?> result2 = barChannel.receive(0);
    assertNotNull(result2);
    assertEquals("bar", result2.getPayload());
    try {
        router.handleMessage(badMessage);
        fail();
    } catch (MessageDeliveryException e) {
    /* Success */
    }
}
Also used : GenericMessage(org.springframework.messaging.support.GenericMessage) QueueChannel(org.springframework.integration.channel.QueueChannel) TestChannelResolver(org.springframework.integration.channel.TestChannelResolver) MessageDeliveryException(org.springframework.messaging.MessageDeliveryException)

Example 4 with TestChannelResolver

use of org.springframework.integration.channel.TestChannelResolver in project spring-integration by spring-projects.

the class MethodInvokingRouterTests method multiChannelNameResolutionByMessageConfiguredByMethodName.

@Test
public void multiChannelNameResolutionByMessageConfiguredByMethodName() throws Exception {
    TestChannelResolver channelResolver = new TestChannelResolver();
    MultiChannelNameRoutingTestBean testBean = new MultiChannelNameRoutingTestBean();
    MethodInvokingRouter router = new MethodInvokingRouter(testBean, "routeMessage");
    this.doTestMultiChannelNameResolutionByMessage(router, channelResolver);
}
Also used : TestChannelResolver(org.springframework.integration.channel.TestChannelResolver) Test(org.junit.Test)

Example 5 with TestChannelResolver

use of org.springframework.integration.channel.TestChannelResolver in project spring-integration by spring-projects.

the class MethodInvokingRouterTests method multiChannelNameArrayResolutionByMessageConfiguredByMethodReference.

@Test
public void multiChannelNameArrayResolutionByMessageConfiguredByMethodReference() throws Exception {
    TestChannelResolver channelResolver = new TestChannelResolver();
    MultiChannelNameRoutingTestBean testBean = new MultiChannelNameRoutingTestBean();
    Method routingMethod = testBean.getClass().getMethod("routeMessageToArray", Message.class);
    MethodInvokingRouter router = new MethodInvokingRouter(testBean, routingMethod);
    this.doTestMultiChannelNameArrayResolutionByMessage(router, channelResolver);
}
Also used : TestChannelResolver(org.springframework.integration.channel.TestChannelResolver) Method(java.lang.reflect.Method) Test(org.junit.Test)

Aggregations

TestChannelResolver (org.springframework.integration.channel.TestChannelResolver)28 Test (org.junit.Test)27 Method (java.lang.reflect.Method)10 GenericMessage (org.springframework.messaging.support.GenericMessage)10 QueueChannel (org.springframework.integration.channel.QueueChannel)8 Message (org.springframework.messaging.Message)6 ServiceActivatingHandler (org.springframework.integration.handler.ServiceActivatingHandler)2 TestUtils (org.springframework.integration.test.util.TestUtils)2 ArrayList (java.util.ArrayList)1 MessageDeliveryException (org.springframework.messaging.MessageDeliveryException)1