public class EmbeddedJSPResultTest extends TestCase
{
@Override
protected void setUp() throws Exception {
super.setUp();
result = new EmbeddedJSPResult(); request = EasyMock.createNiceMock(HttpServletRequest.class); response = new MockHttpServletResponse(); context = new MockServletContext(); final Map params = new HashMap(); HttpSession session = EasyMock.createNiceMock(HttpSession.class); EasyMock.replay(session); EasyMock.expect(request.getSession()).andReturn(session).anyTimes(); java.util.Map<String,String[]> map=(java.util.Map)request.getParameterMap(); System.out.println("map="+map); System.out.println("before EasyMock.expect(map).andReturn(params).anyTimes()"); EasyMock.expect(map).andReturn(params).anyTimes(); System.out.println("before EasyMock.expect(request.getParameter(username)).andAnswer(new IAnswer<String>()"); EasyMock.expect(request.getParameter("username")).andAnswer(new IAnswer<String>() { public String answer() throws Throwable { System.out.println("(String[]) params.get(username))[0]"+((String[])params.get("username"))[0]); return ((String[]) params.get("username"))[0]; } }); System.out.println("before EasyMock.expect(request.getAttribute(something)).andReturn(somethingelse).anyTimes()"); EasyMock.expect(request.getAttribute("something")).andReturn("somethingelse").anyTimes(); System.out.println("before EasyMock.replay(request) request="+request); EasyMock.replay(request); System.out.println("ActionContext actionContext = new ActionContext(new HashMap<String, Object>())"); ActionContext actionContext = new ActionContext(new HashMap<String, Object>()); System.out.println("actionContext="+actionContext); System.out.println("before ActionContext.setContext(actionContext)"); ActionContext.setContext(actionContext); System.out.println("before actionContext.setParameters(params) where params="+params); actionContext.setParameters(params); System.out.println("before ServletActionContext.setRequest(request) where request="+request); ServletActionContext.setRequest(request); System.out.println("before ServletActionContext.setResponse(response) where response="+response); ServletActionContext.setResponse(response); System.out.println("before ServletActionContext.setServletContext(context) where context="+context); ServletActionContext.setServletContext(context); //mock value stack System.out.println("before Map stackContext=new HashMap()"); Map stackContext = new HashMap(); System.out.println("stackContext="+stackContext); System.out.println("before ValueStack valueStack = EasyMock.createNiceMock(ValueStack.class)"); ValueStack valueStack = EasyMock.createNiceMock(ValueStack.class); System.out.println("valueStack="+valueStack); //put some values in the VS String expr1="expr1"; Object value1="value1"; valueStack.setValue(expr1,value1); System.out.println("valueStack after populating 1st entry="+valueStack.findValue(expr1)); String expr2="expr2"; Object value2="value2"; valueStack.setValue(expr2,value2); System.out.println("valueStack after populating 2nd entry="+valueStack.findValue(expr2)); System.out.println("before Map map=valueStack.getContext()"); Map vs_map=valueStack.getContext(); System.out.println("ValueStack.map="+vs_map); System.out.println("before EasyMock.expect(valueStack.getContext()).andReturn(stackContext).anyTimes() where valueStack.getContext()="+valueStack.getContext()); EasyMock.expect(valueStack.getContext()).andReturn(stackContext).anyTimes(); System.out.println("before EasyMock.replay(valueStack) where valueStack="+valueStack); EasyMock.replay(valueStack); //mock converter System.out.println("before XWorkConverter converter = new DummyConverter()"); XWorkConverter converter = new DummyConverter(); System.out.println("converter="+converter); //mock container System.out.println("before Container container = EasyMock.createNiceMock(Container.class)"); Container container = EasyMock.createNiceMock(Container.class); System.out.println("container="+container); System.out.println("before EasyMock.expect(container.getInstance(XWorkConverter.class)).andReturn(converter).anyTimes()"); EasyMock.expect(container.getInstance(XWorkConverter.class)).andReturn(converter).anyTimes(); System.out.println("before EasyMock.replay(container) where container="+container); EasyMock.replay(container); System.out.println("before stackContext.put(ActionContext.CONTAINER, container)"); stackContext.put(ActionContext.CONTAINER, container); System.out.println("before actionContext.setContainer(container)"); actionContext.setContainer(container); System.out.println("before actionContext.setValueStack(valueStack) where valueStack="+valueStack); actionContext.setValueStack(valueStack); }
}
//output looks like
before EasyMock.expect(request.getParameter(username)).andAnswer(new IAnswer<Str ing="">()
before EasyMock.expect(request.getAttribute(something)).andReturn(somethingelse)
.anyTimes()
before EasyMock.replay(request) request=EasyMock for interface javax.servlet.htt
p.HttpServletRequest
ActionContext actionContext = new ActionContext(new HashMap<String, Object="">())
actionContext=com.opensymphony.xwork2.ActionContext@1feca64
before ActionContext.setContext(actionContext)
before actionContext.setParameters(params) where params={}
before ServletActionContext.setRequest(request) where request=EasyMock for inter
face javax.servlet.http.HttpServletRequest
before ServletActionContext.setResponse(response) where response=org.springframe
work.mock.web.MockHttpServletResponse@6d084b
before ServletActionContext.setServletContext(context) where context=org.springf
ramework.mock.web.MockServletContext@3bb2b8
before Map stackContext=new HashMap()
stackContext={}
before ValueStack valueStack = EasyMock.createNiceMock(ValueStack.class)
valueStack=EasyMock for interface com.opensymphony.xwork2.util.ValueStack
valueStack after populating 1st entry=null
Exception has been thrown messaage=missing behavior definition for the preceding
method call findValue("expr1")
//it seems the expr1 with value1 went into the value stack ok
//but for some reason i cannot retrieve it when I construct ValueStack object
ValueStack valueStack = EasyMock.createNiceMock(ValueStack.class);
EmbeddedJSPResultTest.java