struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carl Ballantyne <carlballant...@gmail.com>
Subject Re: Unit Test Struts2 Action - Custom type converters not being run?
Date Fri, 30 Sep 2011 15:21:00 GMT
In end the I figured out the problem. Thought I would post what the issue
was in case anyone googles the same problem later.

Basically the conversion properties file was not present. So no converter
was being picked up. Simple but the properties file was sometimes present.

A bit beyond the scope of Struts2 but ........

I had a User-conversion.properties file in the same package as the User.java
file. However when the project was being built with maven it was not copying
over the .properties files from the src/main/java folder. I opted to put it
in the src/main/resources folder using the same package name as the java
class which resolved the issue.

I would have normally picked up on this but when using the M2e WTP Plugin it
*was* copying over the properties files. So therefore the problem would only
appear after doing a clean. If I deployed the app using M2e WTP Plugin it
would copy over the properties files to the target folder and the converters
would be run. I thought the M2e WTP Plugin would only use my pom.xml
settings.




On Thu, Sep 22, 2011 at 2:02 PM, Carl Ballantyne
<carlballantyne@gmail.com>wrote:

> Okay same problem back again. It seems to happen after I have done a clean
> with Maven. The custom converters are not being run. *scratches head*
>
> I have done a maven install without running the tests to make sure all
> classes have been compiled.
>
>
>
> On Thu, Sep 22, 2011 at 9:56 AM, Carl Ballantyne <carlballantyne@gmail.com
> > wrote:
>
>> It seems to have fixed itself overnight without me changing anything. I
>> can in this morning and now the converters are being run for the unit tests.
>> Hmmmmm as long as it is passing all good.
>>
>>
>> On Wed, Sep 21, 2011 at 7:25 PM, Maurizio Cucchiara <
>> mcucchiara@apache.org> wrote:
>>
>>> 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 <carlballantyne@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
>>> > <mcucchiara@apache.org>wrote:
>>> >
>>> >> 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 <carlballantyne@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-unsubscribe@struts.apache.org
>>> >> For additional commands, e-mail: user-help@struts.apache.org
>>> >>
>>> >>
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>>>
>>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message