INT-1411 added tests for asyncReceiveAndConvert operations

This commit is contained in:
Mark Fisher
2010-09-03 00:40:56 +00:00
parent 9e4a84257b
commit cd4bc04801

View File

@@ -98,6 +98,57 @@ public class AsyncMessagingTemplateTests {
result.get(100, TimeUnit.MILLISECONDS);
}
@Test
public void asyncReceiveAndConvertWithDefaultChannel() throws Exception {
QueueChannel channel = new QueueChannel();
AsyncMessagingTemplate template = new AsyncMessagingTemplate();
template.setDefaultChannel(channel);
Future<?> result = template.asyncReceiveAndConvert();
sendMessageAfterDelay(channel, new GenericMessage<String>("test"), 200);
long start = System.currentTimeMillis();
assertNotNull(result.get(1000, TimeUnit.MILLISECONDS));
long elapsed = System.currentTimeMillis() - start;
assertEquals("test", result.get());
assertTrue(elapsed >= 200);
}
@Test
public void asyncReceiveAndConvertWithExplicitChannel() throws Exception {
QueueChannel channel = new QueueChannel();
AsyncMessagingTemplate template = new AsyncMessagingTemplate();
Future<?> result = template.asyncReceiveAndConvert(channel);
sendMessageAfterDelay(channel, new GenericMessage<String>("test"), 200);
long start = System.currentTimeMillis();
assertNotNull(result.get(1000, TimeUnit.MILLISECONDS));
long elapsed = System.currentTimeMillis() - start;
assertEquals("test", result.get());
assertTrue(elapsed >= 200);
}
@Test
public void asyncReceiveAndConvertWithResolvedChannel() throws Exception {
StaticApplicationContext context = new StaticApplicationContext();
context.registerSingleton("testChannel", QueueChannel.class);
context.refresh();
QueueChannel channel = context.getBean("testChannel", QueueChannel.class);
AsyncMessagingTemplate template = new AsyncMessagingTemplate();
template.setBeanFactory(context);
Future<?> result = template.asyncReceiveAndConvert("testChannel");
sendMessageAfterDelay(channel, new GenericMessage<String>("test"), 200);
long start = System.currentTimeMillis();
assertNotNull(result.get(1000, TimeUnit.MILLISECONDS));
long elapsed = System.currentTimeMillis() - start;
assertTrue(elapsed >= 200);
assertEquals("test", result.get());
}
@Test(expected = TimeoutException.class)
public void asyncReceiveAndConvertWithTimeoutException() throws Exception {
AsyncMessagingTemplate template = new AsyncMessagingTemplate();
Future<?> result = template.asyncReceiveAndConvert(new QueueChannel());
result.get(100, TimeUnit.MILLISECONDS);
}
@Test
public void asyncSendAndReceiveWithDefaultChannel() throws Exception {
DirectChannel channel = new DirectChannel();