package org.springframework.batch.integration.chunk;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.core.MessageSource;
import org.springframework.messaging.Message;
import org.springframework.messaging.support.GenericMessage;
public class MessageSourcePollerInterceptorTests {
@Test(expected = IllegalStateException.class)
public void testMandatoryPropertiesUnset() throws Exception {
MessageSourcePollerInterceptor interceptor = new MessageSourcePollerInterceptor();
interceptor.afterPropertiesSet();
}
@Test
public void testMandatoryPropertiesSetViaConstructor() throws Exception {
MessageSourcePollerInterceptor interceptor = new MessageSourcePollerInterceptor(new TestMessageSource("foo"));
interceptor.afterPropertiesSet();
}
@Test
public void testMandatoryPropertiesSet() throws Exception {
MessageSourcePollerInterceptor interceptor = new MessageSourcePollerInterceptor();
interceptor.setMessageSource(new TestMessageSource("foo"));
interceptor.afterPropertiesSet();
}
@Test
public void testPreReceive() throws Exception {
MessageSourcePollerInterceptor interceptor = new MessageSourcePollerInterceptor(new TestMessageSource("foo"));
QueueChannel channel = new QueueChannel();
assertTrue(interceptor.preReceive(channel));
assertEquals("foo", channel.receive(10L).getPayload());
}
private static class TestMessageSource implements MessageSource<String> {
private final String payload;
public TestMessageSource(String payload) {
super();
this.payload = payload;
}
public Message<String> receive() {
return new GenericMessage<String>(payload);
}
}
}