Major test-case cleanup.

- Removed JMock dependency, tests rewritten to use Mockito for stub/mock
- All test should now be using JUnit annotation-style tests
- All modules should now depend on same JUnit version
- Rewrote a few tests to better utilize JUnit annotations
- Fixed a few broken tests
- Code style changes
This commit is contained in:
Harald Kuhr
2011-12-19 14:28:34 +01:00
parent 52a97cfb2f
commit 0c4fc454b9
26 changed files with 1539 additions and 1526 deletions

View File

@@ -81,17 +81,10 @@
<scope>test</scope>
</dependency>
<dependency>
<groupId>jmock</groupId>
<artifactId>jmock-cglib</artifactId>
<version>1.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.8.0</version>
<version>1.8.5</version>
</dependency>
</dependencies>

View File

@@ -115,17 +115,13 @@ public abstract class FilterAbstractTestCase extends ObjectAbstractTestCase {
}
static class MockFilterConfig implements FilterConfig {
private final Map mParams;
private final Map<String, String> params;
MockFilterConfig() {
this(new HashMap());
}
MockFilterConfig(Map pParams) {
MockFilterConfig(Map<String, String> pParams) {
if (pParams == null) {
throw new IllegalArgumentException("params == null");
}
mParams = pParams;
params = pParams;
}
public String getFilterName() {
@@ -133,11 +129,11 @@ public abstract class FilterAbstractTestCase extends ObjectAbstractTestCase {
}
public String getInitParameter(String pName) {
return (String) mParams.get(pName);
return params.get(pName);
}
public Enumeration getInitParameterNames() {
return Collections.enumeration(mParams.keySet());
return Collections.enumeration(params.keySet());
}
public ServletContext getServletContext() {
@@ -145,20 +141,20 @@ public abstract class FilterAbstractTestCase extends ObjectAbstractTestCase {
}
private static class MockServletContext implements ServletContext {
private final Map mAttributes;
private final Map mParams;
private final Map<String, Object> attributes;
private final Map<String, String> params;
MockServletContext() {
mAttributes = new HashMap();
mParams = new HashMap();
attributes = new HashMap<String, Object>();
params = new HashMap<String, String>();
}
public Object getAttribute(String s) {
return mAttributes.get(s);
return attributes.get(s);
}
public Enumeration getAttributeNames() {
return Collections.enumeration(mAttributes.keySet());
return Collections.enumeration(attributes.keySet());
}
public ServletContext getContext(String s) {
@@ -166,11 +162,11 @@ public abstract class FilterAbstractTestCase extends ObjectAbstractTestCase {
}
public String getInitParameter(String s) {
return (String) mParams.get(s);
return (String) params.get(s);
}
public Enumeration getInitParameterNames() {
return Collections.enumeration(mParams.keySet());
return Collections.enumeration(params.keySet());
}
public int getMajorVersion() {
@@ -230,40 +226,37 @@ public abstract class FilterAbstractTestCase extends ObjectAbstractTestCase {
}
public void log(Exception exception, String s) {
// TODO: Implement
}
public void log(String s) {
// TODO: Implement
}
public void log(String s, Throwable throwable) {
// TODO: Implement
}
public void removeAttribute(String s) {
mAttributes.remove(s);
attributes.remove(s);
}
public void setAttribute(String s, Object obj) {
mAttributes.put(s, obj);
attributes.put(s, obj);
}
}
}
static class MockServletRequest implements ServletRequest {
final private Map mAttributes;
final private Map<String, Object> attributes;
public MockServletRequest() {
mAttributes = new HashMap();
attributes = new HashMap<String, Object>();
}
public Object getAttribute(String pKey) {
return mAttributes.get(pKey);
return attributes.get(pKey);
}
public Enumeration getAttributeNames() {
return Collections.enumeration(mAttributes.keySet());
return Collections.enumeration(attributes.keySet());
}
public String getCharacterEncoding() {
@@ -331,11 +324,11 @@ public abstract class FilterAbstractTestCase extends ObjectAbstractTestCase {
}
public void setAttribute(String pKey, Object pValue) {
mAttributes.put(pKey, pValue);
attributes.put(pKey, pValue);
}
public void removeAttribute(String pKey) {
mAttributes.remove(pKey);
attributes.remove(pKey);
}
public Locale getLocale() {

View File

@@ -1,20 +1,21 @@
package com.twelvemonkeys.servlet;
import com.twelvemonkeys.util.MapAbstractTestCase;
import org.jmock.Mock;
import org.jmock.core.Invocation;
import org.jmock.core.Stub;
import org.jmock.core.stub.CustomStub;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import static org.mockito.Mockito.when;
/**
* ServletConfigMapAdapterTestCase
* <p/>
*
* @author <a href="mailto:harald.kuhr@gmail.com">Harald Kuhr</a>
* @version $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-servlet/src/test/java/com/twelvemonkeys/servlet/ServletHeadersMapAdapterTestCase.java#1 $
* @version $Id: ServletHeadersMapAdapterTestCase.java#1 $
*/
public class ServletHeadersMapAdapterTestCase extends MapAbstractTestCase {
private static final List<String> HEADER_VALUE_ETAG = Arrays.asList("\"1234567890abcdef\"");
@@ -43,24 +44,21 @@ public class ServletHeadersMapAdapterTestCase extends MapAbstractTestCase {
}
public Map makeEmptyMap() {
Mock mockRequest = mock(HttpServletRequest.class);
mockRequest.stubs().method("getHeaderNames").will(returnValue(Collections.enumeration(Collections.emptyList())));
mockRequest.stubs().method("getHeaders").will(returnValue(null));
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
when(request.getHeaderNames()).thenAnswer(returnEnumeration(Collections.emptyList()));
return new ServletHeadersMapAdapter((HttpServletRequest) mockRequest.proxy());
return new ServletHeadersMapAdapter(request);
}
@Override
public Map makeFullMap() {
Mock mockRequest = mock(HttpServletRequest.class);
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
when(request.getHeaderNames()).thenAnswer(returnEnumeration(Arrays.asList(getSampleKeys())));
when(request.getHeaders("Date")).thenAnswer(returnEnumeration(HEADER_VALUE_DATE));
when(request.getHeaders("ETag")).thenAnswer(returnEnumeration(HEADER_VALUE_ETAG));
when(request.getHeaders("X-Foo")).thenAnswer(returnEnumeration(HEADER_VALUE_FOO));
mockRequest.stubs().method("getHeaderNames").will(returnEnumeration("ETag", "Date", "X-Foo"));
mockRequest.stubs().method("getHeaders").with(eq("Date")).will(returnEnumeration(HEADER_VALUE_DATE));
mockRequest.stubs().method("getHeaders").with(eq("ETag")).will(returnEnumeration(HEADER_VALUE_ETAG));
mockRequest.stubs().method("getHeaders").with(eq("X-Foo")).will(returnEnumeration(HEADER_VALUE_FOO));
mockRequest.stubs().method("getHeaders").with(not(or(eq("Date"), or(eq("ETag"), eq("X-Foo"))))).will(returnValue(null));
return new ServletHeadersMapAdapter((HttpServletRequest) mockRequest.proxy());
return new ServletHeadersMapAdapter(request);
}
@Override
@@ -73,31 +71,25 @@ public class ServletHeadersMapAdapterTestCase extends MapAbstractTestCase {
return new Object[] {HEADER_VALUE_DATE, HEADER_VALUE_ETAG, HEADER_VALUE_FOO};
}
@Override
public Object[] getNewSampleValues() {
// Needs to be same length but different values
return new Object[3];
}
protected Stub returnEnumeration(final Object... pValues) {
return new EnumerationStub(Arrays.asList(pValues));
protected static <T> ReturnNewEnumeration<T> returnEnumeration(final Collection<T> collection) {
return new ReturnNewEnumeration<T>(collection);
}
protected Stub returnEnumeration(final List<?> pValues) {
return new EnumerationStub(pValues);
}
private static class ReturnNewEnumeration<T> implements Answer<Enumeration<T>> {
private final Collection<T> collection;
private static class EnumerationStub extends CustomStub {
private List<?> mValues;
public EnumerationStub(final List<?> pValues) {
super("Returns a new enumeration");
mValues = pValues;
private ReturnNewEnumeration(final Collection<T> collection) {
this.collection = collection;
}
public Object invoke(Invocation invocation) throws Throwable {
return Collections.enumeration(mValues);
public Enumeration<T> answer(InvocationOnMock invocation) throws Throwable {
return Collections.enumeration(collection);
}
}
}
}

View File

@@ -1,14 +1,15 @@
package com.twelvemonkeys.servlet;
import com.twelvemonkeys.util.MapAbstractTestCase;
import org.jmock.Mock;
import org.jmock.core.Invocation;
import org.jmock.core.Stub;
import org.jmock.core.stub.CustomStub;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
import static org.mockito.Mockito.when;
/**
* ServletConfigMapAdapterTestCase
* <p/>
@@ -43,24 +44,22 @@ public class ServletParametersMapAdapterTestCase extends MapAbstractTestCase {
}
public Map makeEmptyMap() {
Mock mockRequest = mock(HttpServletRequest.class);
mockRequest.stubs().method("getParameterNames").will(returnValue(Collections.enumeration(Collections.emptyList())));
mockRequest.stubs().method("getParameterValues").will(returnValue(null));
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
when(request.getParameterNames()).thenAnswer(returnEnumeration(Collections.emptyList()));
return new ServletParametersMapAdapter((HttpServletRequest) mockRequest.proxy());
return new ServletParametersMapAdapter(request);
}
@Override
public Map makeFullMap() {
Mock mockRequest = mock(HttpServletRequest.class);
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
mockRequest.stubs().method("getParameterNames").will(returnEnumeration("tag", "date", "foo"));
mockRequest.stubs().method("getParameterValues").with(eq("date")).will(returnValue(PARAM_VALUE_DATE.toArray(new String[PARAM_VALUE_DATE.size()])));
mockRequest.stubs().method("getParameterValues").with(eq("tag")).will(returnValue(PARAM_VALUE_ETAG.toArray(new String[PARAM_VALUE_ETAG.size()])));
mockRequest.stubs().method("getParameterValues").with(eq("foo")).will(returnValue(PARAM_VALUE_FOO.toArray(new String[PARAM_VALUE_FOO.size()])));
mockRequest.stubs().method("getParameterValues").with(not(or(eq("date"), or(eq("tag"), eq("foo"))))).will(returnValue(null));
when(request.getParameterNames()).thenAnswer(returnEnumeration(Arrays.asList("tag", "date", "foo")));
when(request.getParameterValues("date")).thenReturn(PARAM_VALUE_DATE.toArray(new String[PARAM_VALUE_DATE.size()]));
when(request.getParameterValues("tag")).thenReturn(PARAM_VALUE_ETAG.toArray(new String[PARAM_VALUE_ETAG.size()]));
when(request.getParameterValues("foo")).thenReturn(PARAM_VALUE_FOO.toArray(new String[PARAM_VALUE_FOO.size()]));
return new ServletParametersMapAdapter((HttpServletRequest) mockRequest.proxy());
return new ServletParametersMapAdapter(request);
}
@Override
@@ -79,24 +78,19 @@ public class ServletParametersMapAdapterTestCase extends MapAbstractTestCase {
return new Object[3];
}
protected Stub returnEnumeration(final Object... pValues) {
return new EnumerationStub(Arrays.asList(pValues));
protected static <T> ReturnNewEnumeration<T> returnEnumeration(final Collection<T> collection) {
return new ReturnNewEnumeration<T>(collection);
}
protected Stub returnEnumeration(final List<?> pValues) {
return new EnumerationStub(pValues);
}
private static class ReturnNewEnumeration<T> implements Answer<Enumeration<T>> {
private final Collection<T> collection;
private static class EnumerationStub extends CustomStub {
private List<?> mValues;
public EnumerationStub(final List<?> pValues) {
super("Returns a new enumeration");
mValues = pValues;
private ReturnNewEnumeration(final Collection<T> collection) {
this.collection = collection;
}
public Object invoke(Invocation invocation) throws Throwable {
return Collections.enumeration(mValues);
public Enumeration<T> answer(InvocationOnMock invocation) throws Throwable {
return Collections.enumeration(collection);
}
}
}

File diff suppressed because it is too large Load Diff