Add test cases for ModelDriven action, standard actions and FieldMatch validator
Project: http://git-wip-us.apache.org/repos/asf/struts/repo Commit: http://git-wip-us.apache.org/repos/asf/struts/commit/dbde7522 Tree: http://git-wip-us.apache.org/repos/asf/struts/tree/dbde7522 Diff: http://git-wip-us.apache.org/repos/asf/struts/diff/dbde7522 Branch: refs/heads/master Commit: dbde75221e7b0445bf9006559cc9b128f810311c Parents: 5c8bb45 Author: Johannes Geppert <joh...@gmail.com> Authored: Wed May 27 20:07:08 2015 +0200 Committer: Johannes Geppert <joh...@gmail.com> Committed: Wed May 27 20:07:08 2015 +0200 ---------------------------------------------------------------------- .../BeanValidationInterceptorTest.java | 34 ++++++++- .../beanvalidation/actions/FieldAction.java | 39 ++++++++++ .../actions/FieldMatchAction.java | 80 ++++++++++++++++++++ .../src/test/resources/bean-validation-test.xml | 8 ++ 4 files changed, 160 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/struts/blob/dbde7522/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java ---------------------------------------------------------------------- diff --git a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java index 0c40c48..11aa135 100644 --- a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java +++ b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/BeanValidationInterceptorTest.java @@ -24,8 +24,11 @@ import com.opensymphony.xwork2.ActionProxy; import com.opensymphony.xwork2.ValidationAware; import com.opensymphony.xwork2.XWorkTestCase; import com.opensymphony.xwork2.config.providers.XmlConfigurationProvider; +import org.apache.struts.beanvalidation.actions.FieldAction; +import org.apache.struts.beanvalidation.actions.FieldMatchAction; import org.apache.struts.beanvalidation.actions.ModelDrivenAction; +import java.util.Collection; import java.util.List; import java.util.Map; @@ -96,11 +99,40 @@ public class BeanValidationInterceptorTest extends XWorkTestCase { baseActionProxy.execute(); Map<String, List<String>> fieldErrors = ((ValidationAware) baseActionProxy.getAction()).getFieldErrors(); - System.out.println(fieldErrors); + assertNotNull(fieldErrors); assertEquals(0, fieldErrors.size()); } + public void testFieldAction() throws Exception { + ActionProxy baseActionProxy = actionProxyFactory.createActionProxy("bean-validation", "fieldAction", null, null); + FieldAction action = (FieldAction) baseActionProxy.getAction(); + action.setTest(" "); + baseActionProxy.execute(); + + Map<String, List<String>> fieldErrors = ((ValidationAware) baseActionProxy.getAction()).getFieldErrors(); + + assertNotNull(fieldErrors); + assertEquals(1, fieldErrors.size()); + assertTrue(fieldErrors.get("test").size() > 0); + } + + public void testFieldMatchAction() throws Exception { + ActionProxy baseActionProxy = actionProxyFactory.createActionProxy("bean-validation", "fieldMatchAction", null, null); + FieldMatchAction action = (FieldMatchAction) baseActionProxy.getAction(); + action.setPassword("pass1"); + action.setConfirmPassword("pass2"); + action.setEmail("te...@mail.org"); + action.setConfirmEmail("te...@mail.org"); + baseActionProxy.execute(); + + Collection<String> actionErrors = ((ValidationAware) baseActionProxy.getAction()).getActionErrors(); + System.out.println(actionErrors); + + assertNotNull(actionErrors); + assertEquals(2, actionErrors.size()); + } + @Override protected void setUp() throws Exception { super.setUp(); http://git-wip-us.apache.org/repos/asf/struts/blob/dbde7522/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/FieldAction.java ---------------------------------------------------------------------- diff --git a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/FieldAction.java b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/FieldAction.java new file mode 100644 index 0000000..9d95be2 --- /dev/null +++ b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/FieldAction.java @@ -0,0 +1,39 @@ +/* + * $Id$ + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.struts.beanvalidation.actions; + +import com.opensymphony.xwork2.ActionSupport; +import org.hibernate.validator.constraints.NotBlank; + +public class FieldAction extends ActionSupport { + + @NotBlank(message = "canNotBeBlank") + private String test; + + public String getTest() { + return test; + } + + public void setTest(String test) { + this.test = test; + } + +} http://git-wip-us.apache.org/repos/asf/struts/blob/dbde7522/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/FieldMatchAction.java ---------------------------------------------------------------------- diff --git a/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/FieldMatchAction.java b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/FieldMatchAction.java new file mode 100644 index 0000000..a4d4520 --- /dev/null +++ b/plugins/bean-validation/src/test/java/org/apache/struts/beanvalidation/actions/FieldMatchAction.java @@ -0,0 +1,80 @@ +/* + * $Id$ + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.struts.beanvalidation.actions; + +import com.opensymphony.xwork2.ActionSupport; +import org.apache.struts.beanvalidation.constraints.FieldMatch; +import org.hibernate.validator.constraints.Email; +import org.hibernate.validator.constraints.NotBlank; + +@FieldMatch.List({ + @FieldMatch(first = "password", second = "confirmPassword", message = "The password fields must match"), + @FieldMatch(first = "email", second = "confirmEmail", message = "The email fields must match") +}) +public class FieldMatchAction extends ActionSupport { + + + @NotBlank + private String password; + + @NotBlank + private String confirmPassword; + + @NotBlank + @Email + private String email; + + @NotBlank + @Email + private String confirmEmail; + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getConfirmPassword() { + return confirmPassword; + } + + public void setConfirmPassword(String confirmPassword) { + this.confirmPassword = confirmPassword; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getConfirmEmail() { + return confirmEmail; + } + + public void setConfirmEmail(String confirmEmail) { + this.confirmEmail = confirmEmail; + } +} http://git-wip-us.apache.org/repos/asf/struts/blob/dbde7522/plugins/bean-validation/src/test/resources/bean-validation-test.xml ---------------------------------------------------------------------- diff --git a/plugins/bean-validation/src/test/resources/bean-validation-test.xml b/plugins/bean-validation/src/test/resources/bean-validation-test.xml index fece873..3e616aa 100644 --- a/plugins/bean-validation/src/test/resources/bean-validation-test.xml +++ b/plugins/bean-validation/src/test/resources/bean-validation-test.xml @@ -26,6 +26,14 @@ <interceptor-ref name="beanValidation"/> <result type="void"/> </action> + <action name="fieldAction" class="org.apache.struts.beanvalidation.actions.FieldAction"> + <interceptor-ref name="beanValidation"/> + <result type="void"/> + </action> + <action name="fieldMatchAction" class="org.apache.struts.beanvalidation.actions.FieldMatchAction"> + <interceptor-ref name="beanValidation"/> + <result type="void"/> + </action> </package> </xwork>