INT-1743 refactored test, no more ActiveMQ

This commit is contained in:
Oleg Zhurakousky
2011-01-13 14:00:00 -05:00
parent 6d9335e897
commit 2eb426b0af
3 changed files with 24 additions and 62 deletions

View File

@@ -8,7 +8,6 @@
<enableImports><![CDATA[false]]></enableImports>
<configs>
<config>src/test/java/org/springframework/integration/jms/config/GlobalChannelInterceptorTests-context.xml</config>
<config>src/test/java/org/springframework/integration/jms/config/JmsChannelHistory-context.xml</config>
</configs>
<configSets>
</configSets>

View File

@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-jms="http://www.springframework.org/schema/integration/jms"
xsi:schemaLocation="http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-2.0.xsd
http://www.springframework.org/schema/integration/jms http://www.springframework.org/schema/integration/jms/spring-integration-jms-2.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<int:message-history/>
<int-jms:channel id="jmsChannel" queue="requestQueue"/>
<int:service-activator input-channel="jmsChannel" ref="subscriber"/>
<bean id="subscriber" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg value="org.springframework.integration.jms.config.JmsChannelHistoryTests.JmsService"/>
</bean>
<bean id="requestQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="request.queue"/>
</bean>
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="vm://localhost"/>
</bean>
</property>
<property name="sessionCacheSize" value="10"/>
</bean>
<bean id="jmsTransactionManager"
class="org.springframework.jms.connection.JmsTransactionManager">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
</beans>

View File

@@ -16,20 +16,22 @@
package org.springframework.integration.jms.config;
import static junit.framework.Assert.assertTrue;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import org.junit.Test;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.integration.Message;
import org.springframework.integration.MessagingException;
import org.springframework.integration.core.MessageHandler;
import org.springframework.integration.history.MessageHistory;
import org.springframework.integration.jms.SubscribableJmsChannel;
import org.springframework.integration.message.GenericMessage;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.jms.listener.AbstractMessageListenerContainer;
/**
* @author Oleg Zhurakousky
@@ -37,27 +39,26 @@ import org.springframework.integration.message.GenericMessage;
*/
public class JmsChannelHistoryTests {
@SuppressWarnings("rawtypes")
@Test
public void testMessageHistory() throws Exception{
ActiveMqTestUtils.prepare();
ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("JmsChannelHistory-context.xml", this.getClass());
SubscribableJmsChannel jmsChannel = ac.getBean("jmsChannel", SubscribableJmsChannel.class);
JmsService service = ac.getBean("subscriber", JmsService.class);
AbstractMessageListenerContainer mlContainer = mock(AbstractMessageListenerContainer.class);
JmsTemplate template = mock(JmsTemplate.class);
SubscribableJmsChannel channel = new SubscribableJmsChannel(mlContainer, template);
channel.setShouldTrack(true);
channel.setBeanName("jmsChannel");
Message<String> message = new GenericMessage<String>("hello");
jmsChannel.send(new GenericMessage<String>("hello"));
Thread.sleep(5000);
verify(service, times(1)).handleMessage(Mockito.any(Message.class));
ac.destroy();
}
public static interface JmsGateway{
public Long echo(String time);
}
public static class JmsService implements MessageHandler{
public void handleMessage(Message<?> message) throws MessagingException {
MessageHistory history = MessageHistory.read(message);
assertTrue(history.contains("jmsChannel"));
}
doAnswer(new Answer() {
@SuppressWarnings("unchecked")
public Object answer(InvocationOnMock invocation) {
Message<String> msg = (Message<String>) invocation.getArguments()[0];
MessageHistory history = MessageHistory.read(msg);
assertTrue(history.get(0).contains("jmsChannel"));
return null;
}})
.when(template).convertAndSend(Mockito.any(Message.class));
channel.send(message);
verify(template, times(1)).convertAndSend(Mockito.any(Message.class));
}
}