|
From: Steve F. <sm...@us...> - 2002-10-14 22:58:31
|
Update of /cvsroot/mockobjects/mockobjects-java/src/j2ee/1.3/com/mockobjects/helpers
In directory usw-pr-cvs1:/tmp/cvs-serv10355/src/j2ee/1.3/com/mockobjects/helpers
Added Files:
ServletTestHelper.java FilterTestHelper.java
TagTestHelper.java AbstractServletTestHelper.java
Log Message:
moved some j2ee alt and helper classes from
common to 1.3 to avoid compilation failures
--- NEW FILE: ServletTestHelper.java ---
package com.mockobjects.helpers;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import java.io.IOException;
/**
* Sets up mock servlet objects in a common configuration.
* HttpSession is attached to request, RequestDispatcher is connected to HttpSession
* @see com.mockobjects.servlet.MockHttpServletRequest#setSession
* @see com.mockobjects.servlet.MockServletContext#setupGetRequestDispatcher
*/
public class ServletTestHelper extends AbstractServletTestHelper {
private final HttpServlet testSubject;
public ServletTestHelper(HttpServlet testSubject) {
super();
this.testSubject = testSubject;
}
/**
* Calls HttpServlet.init passing it the MockServletConfig
*/
public void testServletInit() throws ServletException {
testSubject.init(servletConfig);
}
/**
* Calls HttpServlet.service passing it the MockHttpServletRequest & MockHttpServletResponse
*/
public void testServlet() throws ServletException, IOException {
testSubject.service(request, response);
}
}
--- NEW FILE: FilterTestHelper.java ---
package com.mockobjects.helpers;
import com.mockobjects.servlet.MockFilterChain;
import com.mockobjects.servlet.MockFilterConfig;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import java.io.IOException;
/**
* $Revision: 1.1 $
*/
public class FilterTestHelper extends AbstractServletTestHelper {
private final Filter filter;
private final MockFilterChain filterChain = new MockFilterChain();
private final MockFilterConfig filterConfig = new MockFilterConfig();
public FilterTestHelper(Filter filter) {
this.filter = filter;
filterConfig.setupGetServletContext(servletContext);
}
public MockFilterChain getFilterChain() {
return filterChain;
}
public MockFilterConfig getFilterConfig() {
return filterConfig;
}
public void testInit() throws ServletException {
filter.init(filterConfig);
}
public void testDoFilter() throws ServletException, IOException {
filter.doFilter(request, response, filterChain);
}
}
--- NEW FILE: TagTestHelper.java ---
package com.mockobjects.helpers;
import com.mockobjects.servlet.MockBodyContent;
import com.mockobjects.servlet.MockJspWriter;
import com.mockobjects.servlet.MockPageContext;
import junit.framework.Assert;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTag;
import javax.servlet.jsp.tagext.IterationTag;
import javax.servlet.jsp.tagext.Tag;
/**
* Sets up mock tag objects in a common configuration.
* MockHttpServletRequest, MockServletContext and MockHttpSession are attached to MockPageContext
* @see com.mockobjects.servlet.MockPageContext#setRequest();
* @see com.mockobjects.servlet.MockPageContext#setServletContext();
* @see com.mockobjects.servlet.MockPageContext#setSession();
*/
public class TagTestHelper extends AbstractServletTestHelper {
private final MockPageContext pageContext = new MockPageContext();
private final MockBodyContent bodyContent = new MockBodyContent();
private final MockJspWriter outWriter = new MockJspWriter();
private final MockJspWriter enclosingWriter = new MockJspWriter();
private final Tag testSubject;
private final String getReturnValueName(int returnValue) {
switch (returnValue) {
case BodyTag.EVAL_BODY_INCLUDE:
return "EVAL_BODY_INCLUDE";
case BodyTag.EVAL_PAGE:
return "EVAL_PAGE";
case BodyTag.SKIP_BODY:
return "SKIP_BODY";
case BodyTag.SKIP_PAGE:
return "SKIP_PAGE";
case BodyTag.EVAL_BODY_BUFFERED:
return "EVAL_BODY_BUFFERED|EVAL_BODY_AGAIN";
default:
return "Unknown return value (" + returnValue + ")";
}
}
/**
* @param testSubject The Tag to be tested
*/
public TagTestHelper(Tag testSubject) {
this.testSubject = testSubject;
pageContext.setRequest(getRequest());
pageContext.setServletContext(getServletContext());
pageContext.setSession(getHttpSession());
pageContext.setJspWriter(outWriter);
bodyContent.setupGetEnclosingWriter(enclosingWriter);
}
/**
* @return The writer use when making calls to PageContext.getOut
*/
public MockJspWriter getOutWriter() {
return outWriter;
}
public MockPageContext getPageContext() {
return pageContext;
}
/**
* Assert that the return value of doStartTag is equal to an expectedValue
* @param expectedValue value to check against doStartTag
*/
public void assertDoStartTag(final int expectedValue) throws JspException {
testSubject.setPageContext(pageContext);
checkReturnValue("doStartTag", expectedValue, testSubject.doStartTag());
}
private final void checkReturnValue(final String methodName, final int expectedValue, final int returnValue) {
Assert.assertEquals(methodName + " expected value " + getReturnValueName(expectedValue) +
" but was " + getReturnValueName(returnValue),
expectedValue, returnValue);
}
/**
* Invoke doInitBody on the test subject
*/
public void testDoInitBody() throws JspException {
Assert.assertTrue("Test subject not an instance of BodyTag",
testSubject instanceof BodyTag);
((BodyTag) testSubject).setBodyContent(bodyContent);
((BodyTag) testSubject).doInitBody();
}
/**
* Assert that the return value of doAfterBody is equal to an expectedValue
* @param expectedValue value to check against doAfterBody
*/
public void assertDoAfterBody(int expectedValue) throws JspException {
Assert.assertTrue("Test subject not an instance of BodyTag",
testSubject instanceof IterationTag);
checkReturnValue("doAfterTag", expectedValue, ((IterationTag) testSubject).doAfterBody());
}
/**
* Assert that the return value of doEndTag is equal to an expectedValue
* @param expectedValue value to check against doEndTag
*/
public void assertDoEndTag(int expectedValue) throws JspException {
Assert.assertEquals("doEndTag returned unexpected value" + getReturnValueName(expectedValue),
expectedValue, testSubject.doEndTag());
}
}
--- NEW FILE: AbstractServletTestHelper.java ---
package com.mockobjects.helpers;
import com.mockobjects.servlet.*;
/**
* $Revision: 1.1 $
*/
public abstract class AbstractServletTestHelper {
protected final MockHttpServletRequest request = new MockHttpServletRequest();
protected final MockHttpServletResponse response = new MockHttpServletResponse();
protected final MockHttpSession httpSession = new MockHttpSession();
protected final MockRequestDispatcher requestDispatcher = new MockRequestDispatcher();
protected final MockServletContext servletContext = new MockServletContext();
protected final MockServletConfig servletConfig = new MockServletConfig();
public AbstractServletTestHelper() {
request.setSession(httpSession);
servletContext.setupGetRequestDispatcher(requestDispatcher);
}
public MockHttpServletRequest getRequest() {
return request;
}
public MockHttpSession getHttpSession() {
return httpSession;
}
public MockRequestDispatcher getRequestDispatcher() {
return requestDispatcher;
}
public MockHttpServletResponse getResponse() {
return response;
}
public MockServletContext getServletContext() {
return servletContext;
}
public MockServletConfig getServletConfig() {
return servletConfig;
}
}
|