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);</string,></str>
EmbeddedJSPResultTest.java