POLISH: avoided some deprecation warnings, added some mock tests.

This commit is contained in:
Iwein Fuld
2009-12-28 19:07:30 +00:00
parent b5de4b64dc
commit 0ad15c60cc
7 changed files with 172 additions and 120 deletions

View File

@@ -16,6 +16,30 @@
package org.springframework.integration.http;
import org.easymock.IAnswer;
import org.easymock.classextension.ConstructorArgs;
import org.junit.Before;
import org.junit.Test;
import org.springframework.integration.core.Message;
import org.springframework.integration.core.MessageChannel;
import org.springframework.integration.core.MessageHeaders;
import org.springframework.integration.message.StringMessage;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.web.servlet.View;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.UnsupportedEncodingException;
import java.security.Principal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static org.easymock.EasyMock.anyObject;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
@@ -30,32 +54,6 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.notNullValue;
import static org.junit.Assert.assertThat;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.UnsupportedEncodingException;
import java.security.Principal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.easymock.IAnswer;
import org.easymock.classextension.ConstructorArgs;
import org.junit.Before;
import org.junit.Test;
import org.springframework.integration.core.Message;
import org.springframework.integration.core.MessageChannel;
import org.springframework.integration.core.MessageHeaders;
import org.springframework.integration.message.StringMessage;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.web.servlet.View;
/**
* @author Alex Peters
*/
@@ -71,7 +69,7 @@ public class HttpInboundEndpointTests {
private final MessageChannel replyChannel = createMock(MessageChannel.class);
private final Object[] allmocks = new Object[] { requestChannel, replyChannel };
private final Object[] allMocks = new Object[] { requestChannel, replyChannel };
private HttpInboundEndpoint endpoint;
@@ -80,7 +78,7 @@ public class HttpInboundEndpointTests {
private MockHttpServletResponse response;
static {
static {
try {
ANY_BINARY_PAYLOAD = "any binary content..blabla...bla.äöüßß߀€€€".getBytes(ANY_ENCODING);
}
@@ -96,7 +94,7 @@ public class HttpInboundEndpointTests {
endpoint.setRequestChannel(requestChannel);
endpoint.setReplyChannel(replyChannel);
endpoint.afterPropertiesSet();
reset(allmocks);
reset(allMocks);
request = new MockHttpServletRequest("GET", "/anyurl");
response = new MockHttpServletResponse();
response.setCharacterEncoding(ANY_ENCODING);
@@ -133,9 +131,9 @@ public class HttpInboundEndpointTests {
return true;
}
});
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
}
@Test
@@ -150,9 +148,9 @@ public class HttpInboundEndpointTests {
return true;
}
});
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
}
@Test
@@ -171,9 +169,9 @@ public class HttpInboundEndpointTests {
return true;
}
});
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
}
@Test
@@ -195,9 +193,9 @@ public class HttpInboundEndpointTests {
return true;
}
});
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
}
@Test
@@ -215,9 +213,9 @@ public class HttpInboundEndpointTests {
return true;
}
});
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
}
@Test
@@ -238,9 +236,9 @@ public class HttpInboundEndpointTests {
return true;
}
});
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
}
@Test
@@ -255,9 +253,9 @@ public class HttpInboundEndpointTests {
return true;
}
});
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
}
@Test
@@ -273,9 +271,9 @@ public class HttpInboundEndpointTests {
return true;
}
});
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
}
@Test
@@ -290,7 +288,7 @@ public class HttpInboundEndpointTests {
public void handleRequest_withoutReplyMessage_return200()
throws ServletException, IOException {
expect(requestChannel.send(isA(Message.class))).andReturn(true);
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
assertThat(response.getStatus(), is(HttpServletResponse.SC_OK));
}
@@ -299,20 +297,20 @@ public class HttpInboundEndpointTests {
public void handleRequest_replyWithTextPayload_textAsRespContent()
throws ServletException, IOException {
setupEndpointAsMock(ANY_STRING_PAYLOAD);
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
assertThat(response.getContentAsString(), is(ANY_STRING_PAYLOAD));
verify(allmocks);
verify(allMocks);
}
@Test
public void handleRequest_replyWithBytePayload_bytesAsRespContent()
throws ServletException, IOException {
setupEndpointAsMock(ANY_BINARY_PAYLOAD);
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
assertThat(response.getContentAsByteArray(), is(ANY_BINARY_PAYLOAD));
verify(allmocks);
verify(allMocks);
}
@Test
@@ -320,14 +318,14 @@ public class HttpInboundEndpointTests {
throws ServletException, IOException, ClassNotFoundException {
Date obj = new Date();
setupEndpointAsMock(obj);
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
byte[] content = response.getContentAsByteArray();
Object deserializedObj = new ObjectInputStream(
new ByteArrayInputStream(content)).readObject();
assertThat(deserializedObj, is(Date.class));
assertThat((Date) deserializedObj, is(obj));
verify(allmocks);
verify(allMocks);
}
@Test(expected = ServletException.class)
@@ -335,9 +333,9 @@ public class HttpInboundEndpointTests {
throws ServletException, IOException, ClassNotFoundException {
Object obj = new Object();
setupEndpointAsMock(obj);
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
}
@Test
@@ -356,9 +354,9 @@ public class HttpInboundEndpointTests {
});
endpoint.setView(view);
replay(view);
replay(allmocks);
replay(allMocks);
endpoint.handleRequest(request, response);
verify(allmocks);
verify(allMocks);
verify(view);
}

View File

@@ -15,6 +15,19 @@
*/
package org.springframework.integration.test.matcher;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.exceptions.verification.junit.ArgumentsAreDifferent;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.integration.core.Message;
import org.springframework.integration.core.MessageChannel;
import org.springframework.integration.message.MessageBuilder;
import org.springframework.integration.message.MessageHandler;
import java.util.Date;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.CoreMatchers.nullValue;
import static org.junit.Assert.assertThat;
@@ -23,25 +36,12 @@ import static org.mockito.Mockito.when;
import static org.springframework.integration.test.matcher.MockitoMessageMatchers.messageWithHeaderEntry;
import static org.springframework.integration.test.matcher.MockitoMessageMatchers.messageWithPayload;
import java.util.Date;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.exceptions.verification.junit.ArgumentsAreDifferent;
import org.mockito.runners.MockitoJUnit44Runner;
import org.springframework.integration.core.Message;
import org.springframework.integration.core.MessageChannel;
import org.springframework.integration.message.MessageBuilder;
import org.springframework.integration.message.MessageHandler;
/**
* @author Alex Peters
* @author Iwein Fuld
*
*/
@RunWith(MockitoJUnit44Runner.class)
@RunWith(MockitoJUnitRunner.class)
public class MockitoMessageMatchersTests {
static final Date SOME_PAYLOAD = new Date();

View File

@@ -14,15 +14,35 @@
<i:channel id="in"/>
<i:service-activator input-channel="in" output-channel="out">
<bean class="org.mockito.Mockito" factory-method="mock">
<constructor-arg
value="org.springframework.integration.test.mockito.ServiceActivatorOnMockitoMockTests$SingleMethod"/>
</bean>
</i:service-activator>
<i:chain input-channel="in" output-channel="out">
<i:filter expression="payload == 'singleAnnotatedMethodOnClass'"/>
<i:service-activator ref="singleAnnotatedMethodOnClass"/>
</i:chain>
<bean id="singleAnnotatedMethodOnClass" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg
value="org.springframework.integration.test.mockito.ServiceActivatorOnMockitoMockTests.SingleAnnotatedMethodOnClass"/>
</bean>
<i:chain input-channel="in" output-channel="out">
<i:filter expression="payload == 'SingleMethodOnClass'"/>
<i:service-activator ref="singleMethodOnClass"/>
</i:chain>
<bean id="singleMethodOnClass" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg
value="org.springframework.integration.test.mockito.ServiceActivatorOnMockitoMockTests.SingleMethodOnClass"/>
</bean>
<i:chain input-channel="in" output-channel="out">
<i:filter expression="payload == 'SingleMethodAcceptingHeaderOnClass'"/>
<i:service-activator ref="singleMethodAcceptingHeaderOnClass"/>
</i:chain>
<bean id="singleMethodAcceptingHeaderOnClass" class="org.mockito.Mockito" factory-method="mock">
<constructor-arg
value="org.springframework.integration.test.mockito.ServiceActivatorOnMockitoMockTests.SingleMethodAcceptingHeaderOnClass"/>
</bean>
<i:channel id="out">
<i:queue capacity="10"/>
</i:channel>
</beans>
</beans>

View File

@@ -18,15 +18,18 @@ package org.springframework.integration.test.mockito;
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.integration.annotation.Header;
import org.springframework.integration.annotation.ServiceActivator;
import org.springframework.integration.channel.PollableChannel;
import org.springframework.integration.core.MessageChannel;
import org.springframework.integration.message.MessageBuilder;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import static org.mockito.Mockito.verify;
/**
* @author Iwein Fuld
*/
@@ -34,19 +37,58 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
public class ServiceActivatorOnMockitoMockTests {
@Autowired @Qualifier("in")
@Autowired
@Qualifier("in")
MessageChannel in;
@Autowired @Qualifier("out")
@Autowired
@Qualifier("out")
PollableChannel out;
public static class SingleMethod {
public String move(String s){return s;};
public static class SingleAnnotatedMethodOnClass {
@ServiceActivator
public String move(String s) {
return s;
}
}
@Autowired
SingleAnnotatedMethodOnClass singleAnnotatedMethodOnClass;
@Test
public void shouldInvokeMock() {
in.send(MessageBuilder.withPayload("test").build()) ;
public void shouldInvokeMockedSingleAnnotatedMethodOnClass() {
in.send(MessageBuilder.withPayload("singleAnnotatedMethodOnClass").build());
verify(singleAnnotatedMethodOnClass).move("singleAnnotatedMethodOnClass");
}
public static class SingleMethodOnClass {
public String move(String s) {
return s;
}
}
@Autowired
SingleMethodOnClass singleMethodOnClass;
@Test
public void shouldInvokeMockedSingleMethodOnClass() {
in.send(MessageBuilder.withPayload("SingleMethodOnClass").build());
verify(singleMethodOnClass).move("SingleMethodOnClass");
}
public static class SingleMethodAcceptingHeaderOnClass {
public String move(@Header("s") String s) {
return s;
}
}
@Autowired
SingleMethodAcceptingHeaderOnClass singleMethodAcceptingHeaderOnClass;
@Test
public void shouldInvokeMockedSingleMethodAcceptingHeaderOnClass() {
in.send(MessageBuilder.withPayload("SingleMethodAcceptingHeaderOnClass").setHeader("s", "SingleMethodAcceptingHeaderOnClass").build());
verify(singleMethodAcceptingHeaderOnClass).move("SingleMethodAcceptingHeaderOnClass");
}
}

View File

@@ -16,17 +16,6 @@
package org.springframework.integration.ws;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import java.io.StringReader;
import java.io.StringWriter;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.junit.Before;
@@ -34,9 +23,8 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.runners.MockitoJUnit44Runner;
import org.mockito.runners.MockitoJUnitRunner;
import org.mockito.stubbing.Answer;
import org.springframework.integration.channel.DirectChannel;
import org.springframework.integration.core.Message;
import org.springframework.integration.core.MessageChannel;
@@ -44,12 +32,22 @@ import org.springframework.integration.message.MessageDeliveryException;
import org.springframework.ws.WebServiceMessage;
import org.springframework.ws.context.MessageContext;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import java.io.StringReader;
import java.io.StringWriter;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.*;
/**
*
* @author Iwein Fuld
*
*/
@RunWith(MockitoJUnit44Runner.class)
@RunWith(MockitoJUnitRunner.class)
public class SimpleWebServiceInboundGatewayTests {
private SimpleWebServiceInboundGateway gateway = new SimpleWebServiceInboundGateway();

View File

@@ -15,32 +15,29 @@
package org.springframework.integration.dispatcher;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnit44Runner;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.integration.core.Message;
import org.springframework.integration.message.MessageHandler;
import org.springframework.integration.message.MessageRejectedException;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.*;
/**
* @author Iwein Fuld
*/
@RunWith(MockitoJUnit44Runner.class)
@RunWith(MockitoJUnitRunner.class)
public class RoundRobinDispatcherConcurrentTests {
private static final int TOTAL_EXECUTIONS = 40;

View File

@@ -15,27 +15,24 @@
package org.springframework.integration.dispatcher;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import java.util.concurrent.atomic.AtomicInteger;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnit44Runner;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.beans.DirectFieldAccessor;
import org.springframework.integration.core.Message;
import org.springframework.integration.message.MessageHandler;
import java.util.concurrent.atomic.AtomicInteger;
import static org.mockito.Mockito.*;
/**
* @author Iwein Fuld
* @author Mark Fisher
*/
@RunWith(MockitoJUnit44Runner.class)
@RunWith(MockitoJUnitRunner.class)
public class RoundRobinDispatcherTests {
private UnicastingDispatcher dispatcher = new UnicastingDispatcher();