Can Struts Junit plugin be used to test the redirect result of an action
I am using the Struts Junit plugin (http://struts.apache.org/2.2.3.1/docs/struts-2-junit-plugin-tutorial.html ), extending the StrutsSpringTestCase for a regression test of an action in my application. (Optional reading: Long story short on the problem, the action adds a record to a database via hibernate. The result is a redirect to execute() of the same class, whose prepare() populates a ListRecord object with all the records available. For some reason, the prepare fires as it should, but returns the old number of items. Only a refresh shows the page with the correct results. For an odd reason, sleeping the thread before calling the dao's code that retrieves the list for 1 second also makes the result to be correctly updated.) The action result is a redirectAction, that, well, redirects to another action. The test doesn't call this second method, though. Is it possible with this base test case to make it call the 2nd action? Regards, Miguel Almeida
Unit Test Struts2 Action - Custom type converters not being run?
Hi All, I have an action that I am trying to unit test. However it seems the converters I have set for the User object that is being create by the action are not being applied at all when running the unit test. The converters are run when running the application. For example I have a test class: public class UserCreateTest extends StrutsSpringTestCase { public void testValidationRequired() throws Exception { request.setParameter(user.roles, ); ActionProxy proxy = getActionProxy(/createUser.action); ActionSupport action = (ActionSupport)proxy.getAction(); proxy.setExecuteResult(false); // Do not execute view (JSP/Tiles) proxy.execute(); // asserts to check errors etc.. } } And then for that test class I have getUser and setUser methods that return a User object. This object has an attribute roles that has a converter applied by puting a User-conversion.properties file in the same folder as the User class. All this works fine when running the app. It is just when running the unit test it does not seem to get run. Or at least it is not getting run before the Validation interceptor which seems odd to me. Anyone have any ideas? Anyone testing validation for actions that involve custom convertors? Cheers, Carl.
Re: Unit Test Struts2 Action - Custom type converters not being run?
What Struts version are you using? Could you give a try to the nightly version [1] and tell me if it works as you expect? Be aware that you can write your test as follow: public void testValidationRequired() throws Exception { request.setParameter(user.roles, ); executeAction(/your_package/your_action.action); // asserts to check errors etc.. } } [1] https://builds.apache.org/job/Struts2/lastStableBuild/org.apache.struts$struts2-assembly/ Maurizio Cucchiara On 21 September 2011 17:31, Carl Ballantyne carlballant...@gmail.com wrote: Hi All, I have an action that I am trying to unit test. However it seems the converters I have set for the User object that is being create by the action are not being applied at all when running the unit test. The converters are run when running the application. For example I have a test class: public class UserCreateTest extends StrutsSpringTestCase { public void testValidationRequired() throws Exception { request.setParameter(user.roles, ); ActionProxy proxy = getActionProxy(/createUser.action); ActionSupport action = (ActionSupport)proxy.getAction(); proxy.setExecuteResult(false); // Do not execute view (JSP/Tiles) proxy.execute(); // asserts to check errors etc.. } } And then for that test class I have getUser and setUser methods that return a User object. This object has an attribute roles that has a converter applied by puting a User-conversion.properties file in the same folder as the User class. All this works fine when running the app. It is just when running the unit test it does not seem to get run. Or at least it is not getting run before the Validation interceptor which seems odd to me. Anyone have any ideas? Anyone testing validation for actions that involve custom convertors? Cheers, Carl. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Unit Test Struts2 Action - Custom type converters not being run?
I am using 2.2.3. How can I try the nightly build if using Maven? I do not see it listed as an option. I also noticed I am using spring beans as the converters. Not sure if this makes a difference. So for example in the conversion properties file I have something like roles=rolesConverter. And rolesConverter is a spring bean. I will try some more tomorrow and see what I can come up with. I am sure it is something silly I am doing. On Wed, Sep 21, 2011 at 5:47 PM, Maurizio Cucchiara mcucchi...@apache.orgwrote: What Struts version are you using? Could you give a try to the nightly version [1] and tell me if it works as you expect? Be aware that you can write your test as follow: public void testValidationRequired() throws Exception { request.setParameter(user.roles, ); executeAction(/your_package/your_action.action); // asserts to check errors etc.. } } [1] https://builds.apache.org/job/Struts2/lastStableBuild/org.apache.struts$struts2-assembly/ Maurizio Cucchiara On 21 September 2011 17:31, Carl Ballantyne carlballant...@gmail.com wrote: Hi All, I have an action that I am trying to unit test. However it seems the converters I have set for the User object that is being create by the action are not being applied at all when running the unit test. The converters are run when running the application. For example I have a test class: public class UserCreateTest extends StrutsSpringTestCase { public void testValidationRequired() throws Exception { request.setParameter(user.roles, ); ActionProxy proxy = getActionProxy(/createUser.action); ActionSupport action = (ActionSupport)proxy.getAction(); proxy.setExecuteResult(false); // Do not execute view (JSP/Tiles) proxy.execute(); // asserts to check errors etc.. } } And then for that test class I have getUser and setUser methods that return a User object. This object has an attribute roles that has a converter applied by puting a User-conversion.properties file in the same folder as the User class. All this works fine when running the app. It is just when running the unit test it does not seem to get run. Or at least it is not getting run before the Validation interceptor which seems odd to me. Anyone have any ideas? Anyone testing validation for actions that involve custom convertors? Cheers, Carl. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org
Re: Unit Test Struts2 Action - Custom type converters not being run?
On Wed, 2011-09-21 at 17:55 +0200, Carl Ballantyne wrote: How can I try the nightly build if using Maven? I do not see it listed as an option. Would be nice if Struts released SNAPSHOT versions into maven. Does it? Be aware that you can write your test as follow: public void testValidationRequired() throws Exception { request.setParameter(user.roles, ); executeAction(/your_package/your_action.action); // asserts to check errors etc.. } } Maurizio: you can't use this if you have to set objects (eg: action.setSession(session );), does it? In my sessioned test I need: action.setSession(session ); actionProxy.getInvocation().getInvocationContext().setSession(session); perhaps the first could be replaced with request.setParameter() (can it?), but I need the second - otherwise I'll have a nullpointerexception in my action's session.get() method (because ServletConfigInterceptor's ((SessionAware) action).setSession(context.getSession()); (line 146) will set it to null and override the action.setSession(session) instruction) Miguel
Re: Unit Test Struts2 Action - Custom type converters not being run?
Does Maven Snapshot section [1] answer your question? [1] http://struts.apache.org/dev/builds.html#MavenSnapshots Maurizio Cucchiara On 21 September 2011 17:55, Carl Ballantyne carlballant...@gmail.com wrote: I am using 2.2.3. How can I try the nightly build if using Maven? I do not see it listed as an option. I also noticed I am using spring beans as the converters. Not sure if this makes a difference. So for example in the conversion properties file I have something like roles=rolesConverter. And rolesConverter is a spring bean. I will try some more tomorrow and see what I can come up with. I am sure it is something silly I am doing. On Wed, Sep 21, 2011 at 5:47 PM, Maurizio Cucchiara mcucchi...@apache.orgwrote: What Struts version are you using? Could you give a try to the nightly version [1] and tell me if it works as you expect? Be aware that you can write your test as follow: public void testValidationRequired() throws Exception { request.setParameter(user.roles, ); executeAction(/your_package/your_action.action); // asserts to check errors etc.. } } [1] https://builds.apache.org/job/Struts2/lastStableBuild/org.apache.struts$struts2-assembly/ Maurizio Cucchiara On 21 September 2011 17:31, Carl Ballantyne carlballant...@gmail.com wrote: Hi All, I have an action that I am trying to unit test. However it seems the converters I have set for the User object that is being create by the action are not being applied at all when running the unit test. The converters are run when running the application. For example I have a test class: public class UserCreateTest extends StrutsSpringTestCase { public void testValidationRequired() throws Exception { request.setParameter(user.roles, ); ActionProxy proxy = getActionProxy(/createUser.action); ActionSupport action = (ActionSupport)proxy.getAction(); proxy.setExecuteResult(false); // Do not execute view (JSP/Tiles) proxy.execute(); // asserts to check errors etc.. } } And then for that test class I have getUser and setUser methods that return a User object. This object has an attribute roles that has a converter applied by puting a User-conversion.properties file in the same folder as the User class. All this works fine when running the app. It is just when running the unit test it does not seem to get run. Or at least it is not getting run before the Validation interceptor which seems odd to me. Anyone have any ideas? Anyone testing validation for actions that involve custom convertors? Cheers, Carl. - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org - To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org