1 package org.jmage.tags; 2 3 import org.jmock.cglib.Mock; 4 import org.jmock.cglib.MockObjectTestCase; 5 6 import javax.servlet.http.HttpServletRequest; 7 import javax.servlet.jsp.JspException; 8 import javax.servlet.jsp.JspWriter; 9 import javax.servlet.jsp.PageContext; 10 11 /*** 12 * GenericTagHandlerTests 13 */ 14 public abstract class GenericTagHandlerTests extends MockObjectTestCase { 15 protected Mock mockHttpServletRequest; 16 protected Mock mockPageContext; 17 protected Mock mockJspWriter; 18 protected JmageTagHandler jmageTagHandler; 19 20 protected void setUp() throws Exception { 21 super.setUp(); 22 mockHttpServletRequest = new Mock(HttpServletRequest.class); 23 mockPageContext = new Mock(PageContext.class); 24 mockJspWriter = new Mock(MyDummyJspWriter.class); 25 } 26 27 public void testDoEndTag() throws JspException { 28 this.setExpectations(); 29 assertEquals(0, jmageTagHandler.doStartTag()); 30 assertEquals(6, jmageTagHandler.doEndTag()); 31 } 32 33 protected void setExpectations() { 34 mockPageContext.expects(once()).method("getRequest").will(returnValue((HttpServletRequest) mockHttpServletRequest.proxy())); 35 mockPageContext.expects(once()).method("getOut").will(returnValue((JspWriter) mockJspWriter.proxy())); 36 mockHttpServletRequest.expects(once()).method("getContextPath").will(returnValue("http://host.org/context")); 37 mockHttpServletRequest.expects(atLeastOnce()).method("getHeader").with(eq("user-agent")).will(returnValue("windows msie 6.0")); 38 mockJspWriter.expects(once()).method("print").with(eq(this.getTagResult())).isVoid(); 39 } 40 41 protected abstract String getTagResult(); 42 }