package org.springframework.integration.flow.config.xml; import static org.junit.Assert.assertTrue; 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.messaging.Message; import org.springframework.messaging.MessageChannel; import org.springframework.messaging.MessagingException; import org.springframework.messaging.MessageHandler; import org.springframework.messaging.SubscribableChannel; import org.springframework.messaging.support.GenericMessage; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration public class FlowWithOptionalResponseTests { @Autowired @Qualifier("inputC") MessageChannel input; @Autowired @Qualifier("inputCO") MessageChannel inputForOptionalResponse; @Autowired @Qualifier("outputC") SubscribableChannel output; @Test public void testOneWay() { input.send(new GenericMessage<String>("hello")); } @Test public void testOptionResponse() { TestMessageHandler counter = new TestMessageHandler(); output.subscribe(counter); for (int i = 0; i < 100; i++) { inputForOptionalResponse.send(new GenericMessage<String>("hello")); } assertTrue(String.valueOf(counter.count), counter.count > 1 && counter.count < 100); } static class TestMessageHandler implements MessageHandler { int count = 0; public void handleMessage(Message<?> message) throws MessagingException { count++; } } }