I was playing around with groovy and stripes and decided to write some
action bean tests in groovy to see if it saved me some typing.  So far it
hasn't because I can't get it to work.  Groovy seems to use a pretty old
version of JUnit (3.something) but I'm not sure if that can really be the
problem.  Below is my groovy test case....

public class GroovyHomeActionBeanTest extends GroovyTestCase {

    void testDefaultHandler() {

        def mockServletContext = new MockServletContext("oneupthis")
        def params = ["ActionResolver.Packages":"com.oneupthis.web.action",
"Extension.Packages":"com.oneupthis.web.extension"]
        mockServletContext.addFilter(StripesFilter.class, "StripesFilter",
params)
        mockServletContext.setServlet(DispatcherServlet.class,
"DispatcherServlet", null)
        def mockSession = new MockHttpSession(mockServletContext)
        MockRoundtrip trip = new MockRoundtrip(mockServletContext,
HomeActionBean.class, mockSession)
        trip.execute()
        HomeActionBean bean = trip.getActionBean(HomeActionBean.class)
        assertNotNull bean
    }
}

I get the following exception:

net.sourceforge.stripes.exception.StripesServletException: Could not create
instance of ActionBean type [com.oneupthis.web.action.HomeActionBean].
    at
net.sourceforge.stripes.controller.AnnotatedClassActionResolver.getActionBean(AnnotatedClassActionResolver.java:367)
    at
net.sourceforge.stripes.controller.NameBasedActionResolver.getActionBean(NameBasedActionResolver.java:264)
    at
net.sourceforge.stripes.controller.AnnotatedClassActionResolver.getActionBean(AnnotatedClassActionResolver.java:292)
    at
net.sourceforge.stripes.controller.DispatcherHelper$1.intercept(DispatcherHelper.java:106)
    at
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:158)
    at
net.sourceforge.stripes.controller.BeforeAfterMethodInterceptor.intercept(BeforeAfterMethodInterceptor.java:113)
    at
net.sourceforge.stripes.controller.ExecutionContext.proceed(ExecutionContext.java:155)
    at
net.sourceforge.stripes.controller.ExecutionContext.wrap(ExecutionContext.java:74)
    at
net.sourceforge.stripes.controller.DispatcherHelper.resolveActionBean(DispatcherHelper.java:102)
    at
net.sourceforge.stripes.controller.DispatcherServlet.resolveActionBean(DispatcherServlet.java:238)
    at
net.sourceforge.stripes.controller.DispatcherServlet.service(DispatcherServlet.java:141)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at
net.sourceforge.stripes.mock.MockFilterChain.doFilter(MockFilterChain.java:66)
    at
net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:247)
    at
net.sourceforge.stripes.mock.MockFilterChain.doFilter(MockFilterChain.java:63)
    at
net.sourceforge.stripes.mock.MockServletContext.acceptRequest(MockServletContext.java:255)
    at
net.sourceforge.stripes.mock.MockRoundtrip.execute(MockRoundtrip.java:245)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
    at
org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
    at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:43)
    at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
    at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
    at
com.oneupthis.web.action.GroovyHomeActionBeanTest.testDefaultHandler(GroovyHomeActionBeanTest.groovy:23)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)

Now, this code which is just plain java works fine

public class HomeActionBeanTest {

    @Test
    private void testDefaultHandler() throws Exception {

        MockServletContext mockServletContext = new
MockServletContext("oneupthis");
        final Map<String, String> params = new HashMap<String, String>();
        params.put("ActionResolver.Packages", "com.oneupthis.web.action");
        params.put("Extension.Packages", "com.oneupthis.web.extension");
        mockServletContext.addFilter(StripesFilter.class, "StripesFilter",
params);
        mockServletContext.setServlet(DispatcherServlet.class,
"DispatcherServlet", null);
        MockHttpSession mockSession = new
MockHttpSession(mockServletContext);
        MockRoundtrip trip = new MockRoundtrip(mockServletContext,
HomeActionBean.class, mockSession);
        trip.execute();
        HomeActionBean bean = trip.getActionBean(HomeActionBean.class);
    }
}

Of course, with this I am using TestNG.   Anyone have any thoughts?

Gregg
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users

Reply via email to