I'm trying to write a JUnit test for an Action and I'm having problems
with ClassCastExceptions on the findForward() method of ActionMapping.
I am not in a position to try any other packages or tools, so I have
to roll this one myself.

I have narrowed the problem down to getting the ClassCastException in
the following line of the action under test:

ActionForward forward = mapping.findForward("success");

A fairly straight-forward thing to do in an Action,so it must be in my
setting up of the ActionMapping. Here's the setup in my test:

// Now build an ForwardConfig
ForwardConfig config = new ForwardConfig("success", "/noOp.jsp", false);
config.freeze();
assertEquals("ForwardConfig[name=success,path=/noOp.jsp,redirect=false,contextRelative=false]",
config.toString());

The assertEquals passes, so I hope that my ForwardConfig was correct.
Here's my setup of the ActionMapping:

// Build an ActionMapping for our ForwardConfig
ActionMapping mapping  = new ActionMapping();
mapping.addForwardConfig(config);

// Set remaining attributes
mapping.setAttribute("noOpForm");
mapping.setInput("/noOp.jsp");
mapping.setName("noOpForm");
mapping.setPath("/noOp");
mapping.setScope("request");
mapping.setType("com.landsend.ebs.jokertags.actions.NoOpAction");
mapping.freeze();
assertEquals("noOpForm", mapping.getAttribute());
assertEquals("/noOp.jsp", mapping.getInput());
assertEquals("noOpForm", mapping.getName());
assertEquals("/noOp", mapping.getPath());
assertEquals("request", mapping.getScope());
assertEquals("com.landsend.ebs.jokertags.actions.NoOpAction",
mapping.getType());
assertEquals("ActionConfig[path=/noOp,attribute=noOpForm,input=/noOp.jsp,name=noOpForm,scope=request,type=com.landsend.ebs.jokertags.actions.NoOpAction",
mapping.toString());

Again, all these asserts pass, so I hope that means that my
ActionMapping is right.

I call the action using the line:

ActionForward forward = action.execute(mapping, form, null, null);

I'm not using the HttpServletRequest or HttpServletResponse objects in
the action, so they're null for now.

What am I doing wrong?

Simon (the Lands' End guy now using GMail :-)

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to