You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by rd...@apache.org on 2011/02/01 13:58:21 UTC
svn commit: r1066035 - in /myfaces/extensions/validator/trunk:
test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/
validation-modules/property-validation/src/main/java/org/apache/myfaces/e...
Author: rdebusscher
Date: Tue Feb 1 12:58:20 2011
New Revision: 1066035
URL: http://svn.apache.org/viewvc?rev=1066035&view=rev
Log:
EXTVAL-124, EXTVAL-125, EXTVAL-126
Added:
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestBean.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestCase.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestBean.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestCase.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestBean.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestCase.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestBean.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestCase.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestBean.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestCase.java
Modified:
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestBean.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestBean.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestBean.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,38 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIs;
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIsType;
+
+import java.util.Date;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs1TestBean
+{
+
+ private Date property1;
+
+ @DateIs(valueOf = "property1", type = DateIsType.before)
+ private Date property2;
+
+ public Date getProperty1()
+ {
+ return property1;
+ }
+
+ public void setProperty1(Date property1)
+ {
+ this.property1 = property1;
+ }
+
+ public Date getProperty2()
+ {
+ return property2;
+ }
+
+ public void setProperty2(Date property2)
+ {
+ this.property2 = property2;
+ }
+}
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestCase.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestCase.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestCase.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs1TestCase.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,138 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.test.propval.AbstractPropertyValidationTestCase;
+import org.junit.Test;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIViewRoot;
+import javax.faces.component.html.HtmlForm;
+import javax.faces.component.html.HtmlInputText;
+import javax.faces.convert.DateTimeConverter;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs1TestCase extends AbstractPropertyValidationTestCase
+{
+
+ HtmlInputText inputComponent1 = null;
+ HtmlInputText inputComponent2 = null;
+
+ UIViewRoot rootComponent = null;
+
+ public DateIs1TestCase()
+ {
+ inputComponent1 = null;
+ inputComponent2 = null;
+ rootComponent = null;
+ }
+
+
+ @Override
+ protected void setUpTestCase()
+ {
+ super.setUpTestCase();
+ DateIs1TestBean bean = new DateIs1TestBean();
+ createValueBinding(null, "value", "#{testBean}");
+ facesContext.getExternalContext().getRequestMap().put("testBean", bean);
+
+ rootComponent = new UIViewRoot();
+ HtmlForm form = new HtmlForm();
+ form.setId("form");
+ rootComponent.getChildren().add(form);
+ inputComponent1 = new HtmlInputText();
+ form.getChildren().add(inputComponent1);
+ inputComponent1.setId("input1");
+ inputComponent2 = new HtmlInputText();
+ form.getChildren().add(inputComponent2);
+ inputComponent2.setId("input2");
+
+ DateTimeConverter converter = new DateTimeConverter();
+ converter.setPattern("DD/MM/yyyy");
+ inputComponent1.setConverter(converter);
+ inputComponent2.setConverter(converter);
+ }
+
+ @Test
+ public void testDateIsBeforeCorrect() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("23/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsBeforeWrong() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("23/01/2011");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(1);
+
+ assertNavigationBlocked(true);
+
+ checkMessageSeverities(FacesMessage.SEVERITY_ERROR);
+ }
+
+ @Test
+ public void testDateIsBeforeTargetNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsBeforeSourceNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+}
\ No newline at end of file
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestBean.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestBean.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestBean.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,38 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIs;
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIsType;
+
+import java.util.Date;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs2TestBean
+{
+ private Date property1;
+
+ @DateIs(valueOf = "property1", type = DateIsType.after)
+ private Date property2;
+
+ public Date getProperty1()
+ {
+ return property1;
+ }
+
+ public void setProperty1(Date property1)
+ {
+ this.property1 = property1;
+ }
+
+ public Date getProperty2()
+ {
+ return property2;
+ }
+
+ public void setProperty2(Date property2)
+ {
+ this.property2 = property2;
+ }
+
+}
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestCase.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestCase.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestCase.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs2TestCase.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,138 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.test.propval.AbstractPropertyValidationTestCase;
+import org.junit.Test;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIViewRoot;
+import javax.faces.component.html.HtmlForm;
+import javax.faces.component.html.HtmlInputText;
+import javax.faces.convert.DateTimeConverter;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs2TestCase extends AbstractPropertyValidationTestCase
+{
+
+ HtmlInputText inputComponent1 = null;
+ HtmlInputText inputComponent2 = null;
+
+ UIViewRoot rootComponent = null;
+
+ public DateIs2TestCase()
+ {
+ inputComponent1 = null;
+ inputComponent2 = null;
+ rootComponent = null;
+ }
+
+
+ @Override
+ protected void setUpTestCase()
+ {
+ super.setUpTestCase();
+ DateIs2TestBean bean = new DateIs2TestBean();
+ createValueBinding(null, "value", "#{testBean}");
+ facesContext.getExternalContext().getRequestMap().put("testBean", bean);
+
+ rootComponent = new UIViewRoot();
+ HtmlForm form = new HtmlForm();
+ form.setId("form");
+ rootComponent.getChildren().add(form);
+ inputComponent1 = new HtmlInputText();
+ form.getChildren().add(inputComponent1);
+ inputComponent1.setId("input1");
+ inputComponent2 = new HtmlInputText();
+ form.getChildren().add(inputComponent2);
+ inputComponent2.setId("input2");
+
+ DateTimeConverter converter = new DateTimeConverter();
+ converter.setPattern("DD/MM/yyyy");
+ inputComponent1.setConverter(converter);
+ inputComponent2.setConverter(converter);
+ }
+
+ @Test
+ public void testDateIsAfterCorrect() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("23/01/2011");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsAfterWrong() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("23/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(1);
+
+ assertNavigationBlocked(true);
+
+ checkMessageSeverities(FacesMessage.SEVERITY_ERROR);
+ }
+
+ @Test
+ public void testDateIsAfterTargetNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsAfterSourceNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+}
\ No newline at end of file
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestBean.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestBean.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestBean.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,38 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIs;
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIsType;
+
+import java.util.Date;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs3TestBean
+{
+ private Date property1;
+
+ @DateIs(valueOf = "property1", type = DateIsType.same)
+ private Date property2;
+
+ public Date getProperty1()
+ {
+ return property1;
+ }
+
+ public void setProperty1(Date property1)
+ {
+ this.property1 = property1;
+ }
+
+ public Date getProperty2()
+ {
+ return property2;
+ }
+
+ public void setProperty2(Date property2)
+ {
+ this.property2 = property2;
+ }
+
+}
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestCase.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestCase.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestCase.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs3TestCase.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,143 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.test.propval.AbstractPropertyValidationTestCase;
+import org.junit.Test;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIViewRoot;
+import javax.faces.component.html.HtmlForm;
+import javax.faces.component.html.HtmlInputText;
+import javax.faces.convert.DateTimeConverter;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs3TestCase extends AbstractPropertyValidationTestCase
+{
+
+ HtmlInputText inputComponent1 = null;
+ HtmlInputText inputComponent2 = null;
+
+ UIViewRoot rootComponent = null;
+
+ public DateIs3TestCase()
+ {
+ inputComponent1 = null;
+ inputComponent2 = null;
+ rootComponent = null;
+ }
+
+
+ @Override
+ protected void setUpTestCase()
+ {
+ super.setUpTestCase();
+ DateIs3TestBean bean = new DateIs3TestBean();
+ createValueBinding(null, "value", "#{testBean}");
+ facesContext.getExternalContext().getRequestMap().put("testBean", bean);
+
+ rootComponent = new UIViewRoot();
+ HtmlForm form = new HtmlForm();
+ form.setId("form");
+ rootComponent.getChildren().add(form);
+ inputComponent1 = new HtmlInputText();
+ form.getChildren().add(inputComponent1);
+ inputComponent1.setId("input1");
+ inputComponent2 = new HtmlInputText();
+ form.getChildren().add(inputComponent2);
+ inputComponent2.setId("input2");
+
+ DateTimeConverter converter = new DateTimeConverter();
+ converter.setPattern("DD/MM/yyyy");
+ inputComponent1.setConverter(converter);
+ inputComponent2.setConverter(converter);
+ }
+
+ @Test
+ public void testDateIsSameCorrect() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsSameWrong() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("23/01/2011");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(1);
+
+ assertNavigationBlocked(true);
+
+ checkMessageSeverities(FacesMessage.SEVERITY_ERROR);
+ }
+
+ @Test
+ public void testDateIsSameTargetNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(1);
+
+ assertNavigationBlocked(true);
+
+ checkMessageSeverities(FacesMessage.SEVERITY_ERROR);
+
+
+ }
+
+ @Test
+ public void testDateIssSameSourceNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+
+ }
+
+}
\ No newline at end of file
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestBean.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestBean.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestBean.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,38 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIs;
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIsType;
+
+import java.util.Date;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs4TestBean
+{
+ private Date property1;
+
+ @DateIs(valueOf = "property1", type = DateIsType.beforeOrSame)
+ private Date property2;
+
+ public Date getProperty1()
+ {
+ return property1;
+ }
+
+ public void setProperty1(Date property1)
+ {
+ this.property1 = property1;
+ }
+
+ public Date getProperty2()
+ {
+ return property2;
+ }
+
+ public void setProperty2(Date property2)
+ {
+ this.property2 = property2;
+ }
+
+}
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestCase.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestCase.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestCase.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs4TestCase.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,158 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.test.propval.AbstractPropertyValidationTestCase;
+import org.junit.Test;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIViewRoot;
+import javax.faces.component.html.HtmlForm;
+import javax.faces.component.html.HtmlInputText;
+import javax.faces.convert.DateTimeConverter;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs4TestCase extends AbstractPropertyValidationTestCase
+{
+
+ HtmlInputText inputComponent1 = null;
+ HtmlInputText inputComponent2 = null;
+
+ UIViewRoot rootComponent = null;
+
+ public DateIs4TestCase()
+ {
+ inputComponent1 = null;
+ inputComponent2 = null;
+ rootComponent = null;
+ }
+
+
+ @Override
+ protected void setUpTestCase()
+ {
+ super.setUpTestCase();
+ DateIs4TestBean bean = new DateIs4TestBean();
+ createValueBinding(null, "value", "#{testBean}");
+ facesContext.getExternalContext().getRequestMap().put("testBean", bean);
+
+ rootComponent = new UIViewRoot();
+ HtmlForm form = new HtmlForm();
+ form.setId("form");
+ rootComponent.getChildren().add(form);
+ inputComponent1 = new HtmlInputText();
+ form.getChildren().add(inputComponent1);
+ inputComponent1.setId("input1");
+ inputComponent2 = new HtmlInputText();
+ form.getChildren().add(inputComponent2);
+ inputComponent2.setId("input2");
+
+ DateTimeConverter converter = new DateTimeConverter();
+ converter.setPattern("DD/MM/yyyy");
+ inputComponent1.setConverter(converter);
+ inputComponent2.setConverter(converter);
+ }
+
+ @Test
+ public void testDateIsBeforeCorrect() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("23/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsBeforeSameCorrect() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsBeforeWrong() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("23/01/2011");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(1);
+
+ assertNavigationBlocked(true);
+
+ checkMessageSeverities(FacesMessage.SEVERITY_ERROR);
+ }
+
+ @Test
+ public void testDateIsBeforeSourceNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsBeforeTargetNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+}
\ No newline at end of file
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestBean.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestBean.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestBean.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,38 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIs;
+import org.apache.myfaces.extensions.validator.crossval.annotation.DateIsType;
+
+import java.util.Date;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs5TestBean
+{
+ private Date property1;
+
+ @DateIs(valueOf = "property1", type = DateIsType.afterOrSame)
+ private Date property2;
+
+ public Date getProperty1()
+ {
+ return property1;
+ }
+
+ public void setProperty1(Date property1)
+ {
+ this.property1 = property1;
+ }
+
+ public Date getProperty2()
+ {
+ return property2;
+ }
+
+ public void setProperty2(Date property2)
+ {
+ this.property2 = property2;
+ }
+
+}
Added: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestCase.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestCase.java?rev=1066035&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestCase.java (added)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/crossval/DateIs5TestCase.java Tue Feb 1 12:58:20 2011
@@ -0,0 +1,158 @@
+package org.apache.myfaces.extensions.validator.test.propval.crossval;
+
+import org.apache.myfaces.extensions.validator.test.propval.AbstractPropertyValidationTestCase;
+import org.junit.Test;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIViewRoot;
+import javax.faces.component.html.HtmlForm;
+import javax.faces.component.html.HtmlInputText;
+import javax.faces.convert.DateTimeConverter;
+
+/**
+ * @author Rudy De Busscher
+ */
+public class DateIs5TestCase extends AbstractPropertyValidationTestCase
+{
+
+ HtmlInputText inputComponent1 = null;
+ HtmlInputText inputComponent2 = null;
+
+ UIViewRoot rootComponent = null;
+
+ public DateIs5TestCase()
+ {
+ inputComponent1 = null;
+ inputComponent2 = null;
+ rootComponent = null;
+ }
+
+
+ @Override
+ protected void setUpTestCase()
+ {
+ super.setUpTestCase();
+ DateIs5TestBean bean = new DateIs5TestBean();
+ createValueBinding(null, "value", "#{testBean}");
+ facesContext.getExternalContext().getRequestMap().put("testBean", bean);
+
+ rootComponent = new UIViewRoot();
+ HtmlForm form = new HtmlForm();
+ form.setId("form");
+ rootComponent.getChildren().add(form);
+ inputComponent1 = new HtmlInputText();
+ form.getChildren().add(inputComponent1);
+ inputComponent1.setId("input1");
+ inputComponent2 = new HtmlInputText();
+ form.getChildren().add(inputComponent2);
+ inputComponent2.setId("input2");
+
+ DateTimeConverter converter = new DateTimeConverter();
+ converter.setPattern("DD/MM/yyyy");
+ inputComponent1.setConverter(converter);
+ inputComponent2.setConverter(converter);
+ }
+
+ @Test
+ public void testDateIsAfterCorrect() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("23/01/2011");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsAfterSameCorrect() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsAfterSameWrong() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("23/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(1);
+
+ assertNavigationBlocked(true);
+
+ checkMessageSeverities(FacesMessage.SEVERITY_ERROR);
+ }
+
+ @Test
+ public void testDateIsAfterSameSourceNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("");
+ inputComponent2.setSubmittedValue("25/01/2011");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+ @Test
+ public void testDateIsAfterSameTargetNull() throws Exception
+ {
+ createValueBinding(inputComponent1, "value", "#{testBean.property1}");
+ createValueBinding(inputComponent2, "value", "#{testBean.property2}");
+
+ //decode
+ inputComponent1.setSubmittedValue("25/01/2011");
+ inputComponent2.setSubmittedValue("");
+
+ //validate
+ inputComponent1.validate(facesContext);
+ inputComponent2.validate(facesContext);
+
+ processCrossValidation();
+ checkMessageCount(0);
+
+ assertNavigationBlocked(false);
+ }
+
+}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java?rev=1066035&r1=1066034&r2=1066035&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIs.java Tue Feb 1 12:58:20 2011
@@ -57,9 +57,15 @@ public @interface DateIs
String notAfterErrorMsgKey() default "wrong_date_not_after";
+ String notBeforeOrSameErrorMsgKey() default "wrong_date_not_before_or_same";
+
+ String notAfterOrSameErrorMsgKey() default "wrong_date_not_after_or_same";
+
String notEqualErrorMsgKey() default "wrong_date_not_equal";
int errorMessageDateStyle() default DateFormat.MEDIUM;
+ String errorMessageDatePattern() default "";
+
Class<? extends ValidationParameter>[] parameters() default ViolationSeverity.Error.class;
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java?rev=1066035&r1=1066034&r2=1066035&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/DateIsType.java Tue Feb 1 12:58:20 2011
@@ -18,8 +18,6 @@
*/
package org.apache.myfaces.extensions.validator.crossval.annotation;
-import org.apache.myfaces.extensions.validator.internal.ToDo;
-import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
@@ -27,9 +25,8 @@ import org.apache.myfaces.extensions.val
* @author Gerhard Petracek
* @since 1.x.1
*/
-@ToDo(value = Priority.MEDIUM, description = "beforeOrSame, afterOrSame")
@UsageInformation(UsageCategory.API)
public enum DateIsType
{
- before, after, same
+ before, after, same, beforeOrSame, afterOrSame
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java?rev=1066035&r1=1066034&r2=1066035&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/DateIsStrategy.java Tue Feb 1 12:58:20 2011
@@ -19,7 +19,6 @@
package org.apache.myfaces.extensions.validator.crossval.strategy;
import org.apache.myfaces.extensions.validator.crossval.annotation.DateIs;
-import org.apache.myfaces.extensions.validator.crossval.annotation.DateIsType;
import org.apache.myfaces.extensions.validator.crossval.annotation.MessageTarget;
import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -27,6 +26,7 @@ import org.apache.myfaces.extensions.val
import javax.faces.context.FacesContext;
import java.text.DateFormat;
+import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.MissingResourceException;
import java.util.logging.Level;
@@ -41,6 +41,8 @@ public class DateIsStrategy extends Abst
{
protected static final String TOO_EARLY = "early";
protected static final String TOO_LATE = "late";
+ protected static final String TOO_EARLY_SAME = "earlyNotSame";
+ protected static final String TOO_LATE_SAME = "lateNotSame";
protected static final String NOT_EQUAL_DATE_TIME = "not equal";
protected static final String RESULT_KEY = "result";
protected static final String COMPARED_VALUE_KEY = "target value";
@@ -53,36 +55,55 @@ public class DateIsStrategy extends Abst
public boolean isViolation(Object object1, Object object2, DateIs annotation)
{
- boolean violationFound;
-
- if (annotation.type().equals(DateIsType.same))
+ boolean violationFound = false;
+ switch (annotation.type())
{
- violationFound = object1 != null && !object1.equals(object2);
-
- if (violationFound)
- {
- this.violationResultStorage.put(RESULT_KEY, NOT_EQUAL_DATE_TIME);
- }
- }
- else if (annotation.type().equals(DateIsType.before))
- {
- violationFound = object1 != null && object2 != null &&
- (!new Date(((Date) object1).getTime()).before((Date) object2) || object1.equals(object2));
-
- if (violationFound)
- {
- this.violationResultStorage.put(RESULT_KEY, TOO_LATE);
- }
- }
- else
- {
- violationFound = object1 != null && object2 != null &&
- (!new Date(((Date) object1).getTime()).after((Date) object2) || object1.equals(object2));
-
- if (violationFound)
- {
- this.violationResultStorage.put(RESULT_KEY, TOO_EARLY);
- }
+ case before:
+ violationFound = object1 != null && object2 != null &&
+ (!new Date(((Date) object1).getTime()).before((Date) object2) || object1.equals(object2));
+
+ if (violationFound)
+ {
+ this.violationResultStorage.put(RESULT_KEY, TOO_LATE);
+ }
+ break;
+ case after:
+ violationFound = object1 != null && object2 != null &&
+ (!new Date(((Date) object1).getTime()).after((Date) object2) || object1.equals(object2));
+
+ if (violationFound)
+ {
+ this.violationResultStorage.put(RESULT_KEY, TOO_EARLY);
+ }
+ break;
+ case same:
+ violationFound = object1 != null && !object1.equals(object2);
+
+ if (violationFound)
+ {
+ this.violationResultStorage.put(RESULT_KEY, NOT_EQUAL_DATE_TIME);
+ }
+ break;
+ case beforeOrSame:
+ violationFound = object1 != null && object2 != null &&
+ new Date(((Date) object1).getTime()).after((Date) object2);
+
+ if (violationFound)
+ {
+ this.violationResultStorage.put(RESULT_KEY, TOO_LATE_SAME);
+ }
+ break;
+ case afterOrSame:
+ violationFound = object1 != null && object2 != null &&
+ new Date(((Date) object1).getTime()).before((Date) object2);
+
+ if (violationFound)
+ {
+ this.violationResultStorage.put(RESULT_KEY, TOO_EARLY_SAME);
+ }
+ break;
+ default:
+ // Nothing to do.
}
if (violationFound)
@@ -115,10 +136,18 @@ public class DateIsStrategy extends Abst
{
return getNotAfterErrorMsgKey(annotation);
}
+ else if (TOO_EARLY_SAME.equals(result))
+ {
+ return getNotAfterOrSameErrorMsgKey(annotation);
+ }
else if (TOO_LATE.equals(result))
{
return getNotBeforeErrorMsgKey(annotation);
}
+ else if (TOO_LATE_SAME.equals(result))
+ {
+ return getNotBeforeOrSameErrorMsgKey(annotation);
+ }
else
{
return getNotEqualErrorMsgKey(annotation);
@@ -127,35 +156,47 @@ public class DateIsStrategy extends Abst
private String reverseResult(String result)
{
+
if (TOO_EARLY.equals(result))
{
return TOO_LATE;
}
- else
+ else if (TOO_EARLY_SAME.equals(result))
+ {
+ return TOO_LATE_SAME;
+ }
+ else if (TOO_LATE_SAME.equals(result))
+ {
+ return TOO_EARLY_SAME;
+ }
+ else if (TOO_LATE.equals(result))
{
return TOO_EARLY;
}
+ return result;
}
@Override
protected String getErrorMessageSummary(DateIs annotation, boolean isTargetComponent)
{
+ /*
if (!isTargetComponent)
{
return super.getErrorMessageSummary(annotation, isTargetComponent);
}
-
+ */
return getErrorMessage(getValidationErrorMsgKey(annotation, isTargetComponent), annotation, isTargetComponent);
}
@Override
protected String getErrorMessageDetail(DateIs annotation, boolean isTargetComponent)
{
+ /*
if (!isTargetComponent)
{
return super.getErrorMessageDetail(annotation, isTargetComponent);
}
-
+ */
try
{
return getErrorMessage(getValidationErrorMsgKey(annotation, isTargetComponent)
@@ -195,8 +236,8 @@ public class DateIsStrategy extends Abst
{
String message = resolveMessage(key);
- DateFormat dateFormat = DateFormat.getDateInstance(annotation.errorMessageDateStyle(),
- FacesContext.getCurrentInstance().getViewRoot().getLocale());
+ DateFormat dateFormat = getDateFormat(annotation.errorMessageDateStyle(),
+ annotation.errorMessageDatePattern());
String result;
@@ -215,6 +256,15 @@ public class DateIsStrategy extends Abst
return result;
}
+ private DateFormat getDateFormat(int dateStyle, String datePattern)
+ {
+ if (datePattern == null || datePattern.length() == 0)
+ {
+ return DateFormat.getDateInstance(dateStyle, FacesContext.getCurrentInstance().getViewRoot().getLocale());
+ }
+ return new SimpleDateFormat(datePattern, FacesContext.getCurrentInstance().getViewRoot().getLocale());
+ }
+
/*
* private
*/
@@ -227,6 +277,15 @@ public class DateIsStrategy extends Abst
return annotation.validationErrorMsgKey();
}
+ private String getNotAfterOrSameErrorMsgKey(DateIs annotation)
+ {
+ if (annotation.validationErrorMsgKey().equals(""))
+ {
+ return annotation.notAfterOrSameErrorMsgKey();
+ }
+ return annotation.validationErrorMsgKey();
+ }
+
private String getNotBeforeErrorMsgKey(DateIs annotation)
{
if (annotation.validationErrorMsgKey().equals(""))
@@ -236,6 +295,15 @@ public class DateIsStrategy extends Abst
return annotation.validationErrorMsgKey();
}
+ private String getNotBeforeOrSameErrorMsgKey(DateIs annotation)
+ {
+ if (annotation.validationErrorMsgKey().equals(""))
+ {
+ return annotation.notBeforeOrSameErrorMsgKey();
+ }
+ return annotation.validationErrorMsgKey();
+ }
+
private String getNotEqualErrorMsgKey(DateIs annotation)
{
if (annotation.validationErrorMsgKey().equals(""))
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties?rev=1066035&r1=1066034&r2=1066035&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/resources/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties Tue Feb 1 12:58:20 2011
@@ -27,8 +27,14 @@ wrong_date_detail=Wrong date
wrong_date_not_before=Date has to be after {0}
wrong_date_not_before_detail=Date has to be after {0}
+wrong_date_not_before_or_same=Date has to be after or equals to {0}
+wrong_date_not_before_or_same_detail=Date has to be after or equals to {0}
+
wrong_date_not_after=Date has to be before {0}
wrong_date_not_after_detail=Date has to be before {0}
+wrong_date_not_after_or_same=Date has to be before or equals to {0}
+wrong_date_not_after_or_same_detail=Date has to be before or equals to {0}
+
wrong_date_not_equal=Date isn't equal to {0}
wrong_date_not_equal_detail=Date isn't equal to {0}
\ No newline at end of file