I'm using something like this to set up Stripes (JUnit 4, then use standard
MockRoundtrip()). You should be able to replace the ActionBeanContext here
with whatever you like.
@BeforeClass
public static void mockUp()
{
MockServletContext context = new MockServletContext("test");
// Add the Stripes Filter
Map<String,String> stripesParams = new HashMap<String,String>();
stripesParams.put( "ActionResolver.Packages", "com.thinglink" );
stripesParams.put(
"ActionResolver.Class","com.thinglink.site.util.web.WebInfNameBasedActionResolver"
);
stripesParams.put(
"ActionBeanContext.Class","com.thinglink.site.util.web.TLActionBeanContext" );
stripesParams.put(
"ExceptionHandler.Class","com.thinglink.site.util.web.TLExceptionHandler" );
stripesParams.put( "Extension.Packages","com.thinglink.site" );
stripesParams.put( "LocalePicker.Locales","en,fi" );
context.addFilter(StripesFilter.class, "StripesFilter", stripesParams);
// Add the Stripes Dispatcher
context.setServlet(DispatcherServlet.class, "StripesDispatcher", null);
m_context = context;
}
/Janne
On Jan 25, 2011, at 07:05 , Nikolaos Giannopoulos wrote:
> Hi,
>
> We have a typical superclass for our ActionBeans:
>
> public abstract class BaseActionBean implements ActionBean {
> ...
> protected MyActionBeanContext context;
> public final MyActionBeanContext getContext() { return context; }
> public final void setContext(ActionBeanContext context) {
> this.context = (MyActionBeanContext) context;
> }
>
> Now, when we write our TestNG tests we do:
> ...
> MockRoundtrip trip = new MockRoundtrip(context, "/share/add/0/-/", new
> MockHttpSession(context));
> MockHttpServletRequest request = trip.getRequest();
> trip.execute();
>
> And everything works great... except I would like to set some values on the
> ActionBean that Stripes finds and instantiates however it is unclear how I
> would access the ActionBean context as trip.execute() creates the ActionBean,
> sets the default context, and processes the event handler. We obviously
> would need to set values on the ActionBeanContext AFTER bean creation BUT
> BEFORE event handler is processed e.g. set the logged in user on the
> ActionBeanContext.
>
> Also it would be nice at times to replace the ActionBeanContext with a test
> version as depicted in the Stripes Best Practices.
>
> Sure its trivial if you don't care about UrlBinding to simply create the
> appropriate bean, set the custom context and pass it to MockRoundTrip however
> that bypasses an important stage that we need to test and that is incoming
> localized / canonical urls (in essence we are doing more end-to-end tests for
> our action beans i.e. start with this URL and after execution end up with
> these messages, errors, and destination URL).
>
> Has anyone done this before? If not, anyone up to the challenge on how to
> solve this?
>
> Thanks,
>
> --Nikolaos
> ------------------------------------------------------------------------------
> Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
> Finally, a world-class log management solution at an even better price-free!
> Download using promo code Free_Logger_4_Dev2Dev. Offer expires
> February 28th, so secure your free ArcSight Logger TODAY!
> http://p.sf.net/sfu/arcsight-sfd2d_______________________________________________
> Stripes-users mailing list
> Stripes-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/stripes-users
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Stripes-users mailing list
Stripes-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stripes-users