From a36aa540fe912964d89f53904b098b5b955800f3 Mon Sep 17 00:00:00 2001 From: dsyer Date: Wed, 30 Jul 2008 08:41:54 +0000 Subject: [PATCH] RESOLVED - issue BATCH-749: Fix EasyMock warnings in infrastructure tests --- .../BatchMessageListenerContainerTests.java | 80 ++++++++----------- 1 file changed, 33 insertions(+), 47 deletions(-) diff --git a/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/container/jms/BatchMessageListenerContainerTests.java b/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/container/jms/BatchMessageListenerContainerTests.java index 08ca468f5..ea5f7b59a 100644 --- a/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/container/jms/BatchMessageListenerContainerTests.java +++ b/spring-batch-infrastructure-tests/src/test/java/org/springframework/batch/container/jms/BatchMessageListenerContainerTests.java @@ -16,6 +16,11 @@ package org.springframework.batch.container.jms; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -26,78 +31,66 @@ import javax.jms.MessageConsumer; import javax.jms.MessageListener; import javax.jms.Session; -import junit.framework.TestCase; - import org.aopalliance.aop.Advice; -import org.easymock.MockControl; +import org.easymock.EasyMock; +import org.junit.Test; import org.springframework.batch.repeat.interceptor.RepeatOperationsInterceptor; import org.springframework.batch.repeat.policy.SimpleCompletionPolicy; import org.springframework.batch.repeat.support.RepeatTemplate; import org.springframework.util.ReflectionUtils; -public class BatchMessageListenerContainerTests extends TestCase { +public class BatchMessageListenerContainerTests { BatchMessageListenerContainer container; int count = 0; + @Test public void testReceiveAndExecuteWithCallback() throws Exception { RepeatTemplate template = new RepeatTemplate(); template.setCompletionPolicy(new SimpleCompletionPolicy(2)); container = getContainer(template); - MockControl sessionControl = MockControl.createNiceControl(Session.class); - MockControl consumerControl = MockControl.createControl(MessageConsumer.class); - MockControl messageControl = MockControl.createControl(Message.class); - - Session session = sessionControl.getMock(); - MessageConsumer consumer = consumerControl.getMock(); - Message message = messageControl.getMock(); + Session session = EasyMock.createMock(Session.class); + MessageConsumer consumer = EasyMock.createMock(MessageConsumer.class); + Message message = EasyMock.createMock(Message.class); // Expect two calls to consumer (chunk size)... - consumerControl.expectAndReturn(consumer.receive(1000), message); - consumerControl.expectAndReturn(consumer.receive(1000), message); + EasyMock.expect(consumer.receive(1000)).andReturn(message).times(2); - sessionControl.replay(); - consumerControl.replay(); - messageControl.replay(); + EasyMock.replay(consumer); boolean received = doExecute(session, consumer); assertTrue("Message not received", received); - sessionControl.verify(); - consumerControl.verify(); - messageControl.verify(); + EasyMock.verify(consumer); } + @Test public void testReceiveAndExecuteWithCallbackReturningNull() throws Exception { RepeatTemplate template = new RepeatTemplate(); template.setCompletionPolicy(new SimpleCompletionPolicy(2)); container = getContainer(template); - MockControl sessionControl = MockControl.createNiceControl(Session.class); - MockControl consumerControl = MockControl.createControl(MessageConsumer.class); - - Session session = sessionControl.getMock(); - MessageConsumer consumer = consumerControl.getMock(); + Session session = EasyMock.createMock(Session.class); + MessageConsumer consumer = EasyMock.createMock(MessageConsumer.class); Message message = null; // Expect one call to consumer (chunk size is 2 but terminates on // first)... - consumerControl.expectAndReturn(consumer.receive(1000), message); + EasyMock.expect(consumer.receive(1000)).andReturn(message); - sessionControl.replay(); - consumerControl.replay(); + EasyMock.replay(consumer, session); boolean received = doExecute(session, consumer); assertFalse("Message not received", received); - sessionControl.verify(); - consumerControl.verify(); + EasyMock.verify(consumer, session); } + @Test public void testTransactionalReceiveAndExecuteWithCallbackThrowingException() throws Exception { RepeatTemplate template = new RepeatTemplate(); template.setCompletionPolicy(new SimpleCompletionPolicy(2)); @@ -112,6 +105,7 @@ public class BatchMessageListenerContainerTests extends TestCase { } } + @Test public void testNonTransactionalReceiveAndExecuteWithCallbackThrowingException() throws Exception { RepeatTemplate template = new RepeatTemplate(); template.setCompletionPolicy(new SimpleCompletionPolicy(2)); @@ -121,6 +115,7 @@ public class BatchMessageListenerContainerTests extends TestCase { assertTrue("Message not received but listener not transactional so this should be true", received); } + @Test public void testNonTransactionalReceiveAndExecuteWithCallbackThrowingError() throws Exception { RepeatTemplate template = new RepeatTemplate(); template.setCompletionPolicy(new SimpleCompletionPolicy(2)); @@ -137,8 +132,7 @@ public class BatchMessageListenerContainerTests extends TestCase { } private BatchMessageListenerContainer getContainer(RepeatTemplate template) { - MockControl connectionFactoryControl = MockControl.createControl(ConnectionFactory.class); - ConnectionFactory connectionFactory = connectionFactoryControl.getMock(); + ConnectionFactory connectionFactory = EasyMock.createMock(ConnectionFactory.class); // Yuck: we need to turn these method in base class to no-ops because the invoker is a private class // we can't create for test purposes... BatchMessageListenerContainer container = new BatchMessageListenerContainer() { @@ -168,33 +162,25 @@ public class BatchMessageListenerContainerTests extends TestCase { } }); - MockControl sessionControl = MockControl.createNiceControl(Session.class); - MockControl consumerControl = MockControl.createNiceControl(MessageConsumer.class); - MockControl messageControl = MockControl.createNiceControl(Message.class); + Session session = EasyMock.createMock(Session.class); + MessageConsumer consumer = EasyMock.createMock(MessageConsumer.class); + Message message = EasyMock.createMock(Message.class); - Session session = sessionControl.getMock(); - MessageConsumer consumer = consumerControl.getMock(); - Message message = messageControl.getMock(); - - sessionControl.expectAndReturn(session.getTransacted(), true, expectGetTransactionCount); + EasyMock.expect(session.getTransacted()).andReturn(true).times(expectGetTransactionCount); // Expect only one call to consumer (chunk size is 2, but first one // rolls back terminating batch)... - consumerControl.expectAndReturn(consumer.receive(1000), message); + EasyMock.expect(consumer.receive(1000)).andReturn(message).anyTimes(); if (expectRollback) { session.rollback(); - sessionControl.setVoidCallable(); + EasyMock.expectLastCall(); } - sessionControl.replay(); - consumerControl.replay(); - messageControl.replay(); + EasyMock.replay(session, consumer, message); boolean received = doExecute(session, consumer); - sessionControl.verify(); - consumerControl.verify(); - messageControl.verify(); + EasyMock.verify(session, consumer, message); return received; }