package net.sourceforge.stripes.controller;
import net.sourceforge.stripes.action.*;
import net.sourceforge.stripes.action.UrlBinding;
import org.testng.Assert;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import java.util.HashSet;
import java.util.Set;
public class AnnotatedClassActionResolverTest {
private AnnotatedClassActionResolver resolver = new AnnotatedClassActionResolver() {
@Override
protected Set<Class<? extends ActionBean>> findClasses() {
Set<Class<? extends ActionBean>> classes = new HashSet<Class<? extends ActionBean>>();
classes.add(SimpleActionBean.class);
classes.add(OverloadedActionBean.class);
classes.add(Container1.OverloadedActionBean.class);
classes.add(Container2.OverloadedActionBean.class);
return classes;
}
};
@UrlBinding("/Simple.action")
static class SimpleActionBean implements ActionBean {
public void setContext(ActionBeanContext context) {
}
public ActionBeanContext getContext() {
return null;
}
}
@UrlBinding("/Overloaded.action")
static class OverloadedActionBean implements ActionBean {
public void setContext(ActionBeanContext context) {
}
public ActionBeanContext getContext() {
return null;
}
}
static class Container1 {
@UrlBinding("/container1/Overloaded.action")
static class OverloadedActionBean implements ActionBean {
public void setContext(ActionBeanContext context) {
}
public ActionBeanContext getContext() {
return null;
}
}
}
static class Container2 {
@UrlBinding("/container2/Overloaded.action")
static class OverloadedActionBean implements ActionBean {
public void setContext(ActionBeanContext context) {
}
public ActionBeanContext getContext() {
return null;
}
}
}
@BeforeTest
public void setUp() throws Exception {
resolver.init(null);
}
@Test(groups = "fast")
public void findByName() {
Class<? extends ActionBean> actionBean = resolver.getActionBeanByName("SimpleActionBean");
Assert.assertNotNull(actionBean);
}
@Test(groups = "fast")
public void multipleActionBeansWithSameSimpleName() {
Class<? extends ActionBean> actionBean = resolver.getActionBeanByName("OverloadedActionBean");
Assert.assertNull(actionBean);
}
}