package com.opensymphony.xwork2.interceptor;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionSupport;
import junit.framework.TestCase;
import org.easymock.MockControl;
import java.util.LinkedHashMap;
import java.util.Map;
/**
* @author tmjee
* @version $Date$ $Id$
*/
public class ParameterRemoverInterceptorTest extends TestCase {
protected Map contextMap;
protected ActionContext context;
protected MockControl actionInvocationControl;
protected ActionInvocation actionInvocation;
@Override
protected void setUp() throws Exception {
contextMap = new LinkedHashMap();
context = new ActionContext(contextMap);
actionInvocationControl = MockControl.createControl(ActionInvocation.class);
actionInvocation = (ActionInvocation) actionInvocationControl.getMock();
actionInvocationControl.expectAndDefaultReturn(actionInvocation.getAction(), new SampleAction());
actionInvocationControl.expectAndDefaultReturn(actionInvocation.getInvocationContext(), context);
actionInvocationControl.expectAndDefaultReturn(actionInvocation.invoke(), "success");
}
public void testInterception1() throws Exception {
contextMap.put(ActionContext.PARAMETERS, new LinkedHashMap() {
private static final long serialVersionUID = 0L;
{
put("param1", new String[] { "paramValue1" });
put("param2", new String[] { "paramValue2" });
put("param3", new String[] { "paramValue3" });
put("param", new String[] { "paramValue" });
}
});
actionInvocationControl.replay();
ParameterRemoverInterceptor interceptor = new ParameterRemoverInterceptor();
interceptor.setParamNames("param1,param2");
interceptor.setParamValues("paramValue1,paramValue2");
interceptor.intercept(actionInvocation);
Map params = (Map) contextMap.get(ActionContext.PARAMETERS);
assertEquals(params.size(), 2);
assertTrue(params.containsKey("param3"));
assertTrue(params.containsKey("param"));
assertEquals(((String[])params.get("param3"))[0], "paramValue3");
assertEquals(((String[])params.get("param"))[0], "paramValue");
actionInvocationControl.verify();
}
public void testInterception2() throws Exception {
contextMap.put(ActionContext.PARAMETERS, new LinkedHashMap() {
private static final long serialVersionUID = 0L;
{
put("param1", new String[] { "paramValue2" });
put("param2", new String[] { "paramValue1" });
}
});
actionInvocationControl.replay();
ParameterRemoverInterceptor interceptor = new ParameterRemoverInterceptor();
interceptor.setParamNames("param1,param2");
interceptor.setParamValues("paramValue1,paramValue2");
interceptor.intercept(actionInvocation);
Map params = (Map) contextMap.get(ActionContext.PARAMETERS);
assertEquals(params.size(), 0);
actionInvocationControl.verify();
}
public void testInterception3() throws Exception {
contextMap.put(ActionContext.PARAMETERS, new LinkedHashMap() {
private static final long serialVersionUID = 0L;
{
put("param1", new String[] { "paramValueOne" });
put("param2", new String[] { "paramValueTwo" });
}
});
actionInvocationControl.replay();
ParameterRemoverInterceptor interceptor = new ParameterRemoverInterceptor();
interceptor.setParamNames("param1,param2");
interceptor.setParamValues("paramValue1,paramValue2");
interceptor.intercept(actionInvocation);
Map params = (Map) contextMap.get(ActionContext.PARAMETERS);
assertEquals(params.size(), 2);
assertTrue(params.containsKey("param1"));
assertTrue(params.containsKey("param2"));
assertEquals(((String[])params.get("param1"))[0], "paramValueOne");
assertEquals(((String[])params.get("param2"))[0], "paramValueTwo");
actionInvocationControl.verify();
}
class SampleAction extends ActionSupport {
private static final long serialVersionUID = 7489487258845368260L;
}
}