You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2007/06/27 20:33:30 UTC
svn commit: r551256 [2/2] - in /tapestry/tapestry5/trunk/tapestry-core/src:
main/java/org/apache/tapestry/internal/services/
main/java/org/apache/tapestry/services/ main/java/org/apache/tapestry/test/
main/java/org/apache/tapestry/validator/ main/resou...
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/FieldValidatorSourceImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/FieldValidatorSourceImplTest.java?view=diff&rev=551256&r1=551255&r2=551256
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/FieldValidatorSourceImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/internal/services/FieldValidatorSourceImplTest.java Wed Jun 27 11:33:28 2007
@@ -63,7 +63,8 @@
replay();
- FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null, map);
+ FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null,
+ map);
try
{
@@ -102,7 +103,7 @@
train_getId(resources, "fred");
train_getContainerMessages(resources, containerMessages);
- train_contains(containerMessages, "fred-required", false);
+ train_contains(containerMessages, "fred-required-message", false);
train_getLocale(resources, Locale.FRENCH);
@@ -117,7 +118,8 @@
replay();
- FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null, map);
+ FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null,
+ map);
FieldValidator fieldValidator = source.createValidator(field, "required", null);
@@ -147,9 +149,9 @@
train_getId(resources, "fred");
train_getLocale(resources, Locale.ENGLISH);
train_getContainerMessages(resources, containerMessages);
- train_contains(containerMessages, "fred-required", true);
+ train_contains(containerMessages, "fred-required-message", true);
- train_getMessageFormatter(containerMessages, "fred-required", formatter);
+ train_getMessageFormatter(containerMessages, "fred-required-message", formatter);
train_invokeIfBlank(validator, false);
train_getValueType(validator, Object.class);
@@ -157,7 +159,8 @@
replay();
- FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null, map);
+ FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null,
+ map);
FieldValidator fieldValidator = source.createValidator(field, "required", null);
@@ -168,6 +171,101 @@
@SuppressWarnings("unchecked")
@Test
+ public void constraint_value_from_message_catalog() throws Exception
+ {
+ ValidationMessagesSource messagesSource = mockValidationMessagesSource();
+ Validator validator = mockValidator();
+ TypeCoercer coercer = mockTypeCoercer();
+ FieldComponent field = newFieldComponent();
+ Messages messages = mockMessages();
+ MessageFormatter formatter = mockMessageFormatter();
+ Object inputValue = new Object();
+ ComponentResources resources = mockComponentResources();
+ Messages containerMessages = mockMessages();
+
+ Map<String, Validator> map = singletonMap("minlength", validator);
+
+ train_getConstraintType(validator, Integer.class);
+
+ train_getComponentResources(field, resources);
+ train_getId(resources, "fred");
+
+ train_contains(containerMessages, "fred-minlength", true);
+ train_get(containerMessages, "fred-minlength", "5");
+
+ train_coerce(coercer, "5", Integer.class, 5);
+
+ train_getContainerMessages(resources, containerMessages);
+ train_contains(containerMessages, "fred-minlength-message", false);
+
+ train_getLocale(resources, Locale.FRENCH);
+
+ train_getValidationMessages(messagesSource, Locale.FRENCH, messages);
+
+ train_getMessageKey(validator, "key");
+ train_getMessageFormatter(messages, "key", formatter);
+
+ train_invokeIfBlank(validator, false);
+ train_getValueType(validator, Object.class);
+ validator.validate(field, 5, formatter, inputValue);
+
+ replay();
+
+ FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null,
+ map);
+
+ FieldValidator fieldValidator = source.createValidators(field, "minlength");
+
+ fieldValidator.validate(inputValue);
+
+ verify();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void missing_field_validator_constraint() throws Exception
+ {
+ ValidationMessagesSource messagesSource = mockValidationMessagesSource();
+ Validator validator = mockValidator();
+ TypeCoercer coercer = mockTypeCoercer();
+ FieldComponent field = newFieldComponent();
+ ComponentResources resources = mockComponentResources();
+ Messages containerMessages = mockMessages();
+
+ Map<String, Validator> map = singletonMap("minlength", validator);
+
+ train_getConstraintType(validator, Integer.class);
+
+ train_getComponentResources(field, resources);
+ train_getId(resources, "fred");
+ train_getLocale(resources, Locale.GERMAN);
+ train_getContainerMessages(resources, containerMessages);
+
+ train_contains(containerMessages, "fred-minlength", false);
+
+ replay();
+
+ FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null,
+ map);
+
+ try
+ {
+ source.createValidators(field, "minlength");
+ unreachable();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ assertEquals(
+ ex.getMessage(),
+ "Validator \'minlength\' requires a validation constraint (of type java.lang.Integer) but none was provided.");
+ }
+
+ verify();
+
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
public void single_validator_via_specification() throws Exception
{
ValidationMessagesSource messagesSource = mockValidationMessagesSource();
@@ -187,7 +285,7 @@
train_getComponentResources(field, resources);
train_getId(resources, "fred");
train_getContainerMessages(resources, containerMessages);
- train_contains(containerMessages, "fred-required", false);
+ train_contains(containerMessages, "fred-required-message", false);
train_getLocale(resources, Locale.FRENCH);
@@ -202,7 +300,8 @@
replay();
- FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null, map);
+ FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null,
+ map);
FieldValidator fieldValidator = source.createValidators(field, "required");
@@ -239,7 +338,7 @@
train_getComponentResources(field, resources);
train_getId(resources, "fred");
train_getContainerMessages(resources, containerMessages);
- train_contains(containerMessages, "fred-required", false);
+ train_contains(containerMessages, "fred-required-message", false);
train_getLocale(resources, Locale.FRENCH);
@@ -248,7 +347,7 @@
train_getMessageKey(required, "required");
train_getMessageFormatter(messages, "required", requiredFormatter);
- train_contains(containerMessages, "fred-minLength", false);
+ train_contains(containerMessages, "fred-minLength-message", false);
train_getMessageKey(minLength, "min-length");
train_getMessageFormatter(messages, "min-length", minLengthFormatter);
@@ -265,7 +364,8 @@
replay();
- FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null, map);
+ FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null,
+ map);
FieldValidator fieldValidator = source.createValidators(field, "required,minLength=15");
@@ -298,7 +398,7 @@
train_getComponentResources(field, resources);
train_getId(resources, "fred");
train_getContainerMessages(resources, containerMessages);
- train_contains(containerMessages, "fred-minLength", false);
+ train_contains(containerMessages, "fred-minLength-message", false);
train_getLocale(resources, Locale.FRENCH);
@@ -313,7 +413,8 @@
replay();
- FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null, map);
+ FieldValidatorSource source = new FieldValidatorSourceImpl(messagesSource, coercer, null,
+ map);
FieldValidator fieldValidator = source.createValidator(field, "minLength", "5");
Added: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/validator/RegexpTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/validator/RegexpTest.java?view=auto&rev=551256
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/validator/RegexpTest.java (added)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/validator/RegexpTest.java Wed Jun 27 11:33:28 2007
@@ -0,0 +1,73 @@
+// Copyright 2007 The Apache Software Foundation
+//
+// Licensed 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.tapestry.validator;
+
+import java.util.regex.Pattern;
+
+import org.apache.tapestry.Field;
+import org.apache.tapestry.ValidationException;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.ioc.MessageFormatter;
+import org.testng.annotations.Test;
+
+/** These are getting tedious; I'd rather do it via integration tests. */
+public class RegexpTest extends InternalBaseTestCase
+{
+ @Test
+ public void matching_pattern() throws Exception
+ {
+ Field field = mockField();
+ MessageFormatter formatter = mockMessageFormatter();
+ Pattern constraint = Pattern.compile("\\d{4}");
+
+ replay();
+
+ Regexp validator = new Regexp();
+
+ validator.validate(field, constraint, formatter, "1234");
+
+ verify();
+ }
+
+ @Test
+ public void input_mismatch() throws Exception
+ {
+ String label = "My Field";
+ Field field = mockFieldWithLabel(label);
+ MessageFormatter formatter = mockMessageFormatter();
+ String message = "{message}";
+ Pattern constraint = Pattern.compile("\\d{4}");
+ String value = "abc";
+
+ train_format(formatter, message, constraint.toString(), label);
+
+ replay();
+
+ Regexp validator = new Regexp();
+
+ try
+ {
+ validator.validate(field, constraint, formatter, value);
+ unreachable();
+ }
+ catch (ValidationException ex)
+ {
+ assertEquals(ex.getMessage(), message);
+ }
+
+ verify();
+
+ }
+}
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/BeanEditorDemo.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/BeanEditorDemo.properties?view=diff&rev=551256&r1=551255&r2=551256
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/BeanEditorDemo.properties (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/BeanEditorDemo.properties Wed Jun 27 11:33:28 2007
@@ -13,5 +13,5 @@
# limitations under the License.
birthYear-label=Year of Birth
-lastName-required=Everyone has to have a last name!
+lastName-required-message=Everyone has to have a last name!
citizen-label=U.S. Citizen
Added: tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/RegexpDemo.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/RegexpDemo.properties?view=auto&rev=551256
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/RegexpDemo.properties (added)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/RegexpDemo.properties Wed Jun 27 11:33:28 2007
@@ -0,0 +1,16 @@
+# Copyright 2007 The Apache Software Foundation
+#
+# Licensed 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.
+
+zipcode-regexp=\\d{5}(\-\\d{4})?
+zipcode-regexp-message=A zip code consists of five or nine digits, eg: 02134 or 90125-4472.
\ No newline at end of file
Modified: tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/ValidForm.properties
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/ValidForm.properties?view=diff&rev=551256&r1=551255&r2=551256
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/ValidForm.properties (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry/integration/app1/pages/ValidForm.properties Wed Jun 27 11:33:28 2007
@@ -12,4 +12,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-message-required=Please provide a detailed description of the incident.
\ No newline at end of file
+message-required-message=Please provide a detailed description of the incident.
\ No newline at end of file