You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2007/02/02 01:53:44 UTC
svn commit: r502421 - in
/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry:
internal/services/FieldValidatorDefaultSourceImpl.java
internal/services/FieldValidatorDefaultSourceImplTest.java
test/TapestryTestCase.java
Author: hlship
Date: Thu Feb 1 16:53:43 2007
New Revision: 502421
URL: http://svn.apache.org/viewvc?view=rev&rev=502421
Log:
Add unit tests for FieldValidatorDefaultSourceImpl.
Added:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImplTest.java
Modified:
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImpl.java
tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImpl.java?view=diff&rev=502421&r1=502420&r2=502421
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImpl.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImpl.java Thu Feb 1 16:53:43 2007
@@ -67,6 +67,6 @@
validators.add(validator);
}
- return new CompositeFieldValidator(validators);
+ return validators.size() == 1 ? validators.get(0) : new CompositeFieldValidator(validators);
}
}
Added: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImplTest.java?view=auto&rev=502421
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImplTest.java (added)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/internal/services/FieldValidatorDefaultSourceImplTest.java Thu Feb 1 16:53:43 2007
@@ -0,0 +1,161 @@
+// 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.internal.services;
+
+import java.util.Locale;
+
+import org.apache.tapestry.AnnotationProvider;
+import org.apache.tapestry.Field;
+import org.apache.tapestry.FieldValidator;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.ioc.Messages;
+import org.apache.tapestry.services.FieldValidatorDefaultSource;
+import org.apache.tapestry.services.FieldValidatorSource;
+import org.apache.tapestry.services.ValidationConstraintGenerator;
+import org.testng.annotations.Test;
+
+public class FieldValidatorDefaultSourceImplTest extends InternalBaseTestCase
+{
+ @SuppressWarnings("unchecked")
+ @Test
+ public void invokes_all_constraint_generators() throws Exception
+ {
+ getMocksControl().checkOrder(true);
+
+ ValidationConstraintGenerator gen = newValidationConstraintGenerator();
+ FieldValidator fv1 = newFieldValidator();
+ FieldValidator fv2 = newFieldValidator();
+ FieldValidatorSource source = newFieldValidatorSource();
+ Class propertyType = Integer.class;
+ AnnotationProvider provider = newAnnotationProvider();
+ String overrideId = "overrideId";
+ Messages overrideMessages = newMessages();
+ Field field = newField();
+ Locale locale = Locale.ENGLISH;
+ String value = "*VALUE*";
+
+ train_buildConstraints(gen, propertyType, provider, "cons1", "cons2");
+
+ train_createValidator(
+ source,
+ field,
+ "cons1",
+ null,
+ overrideId,
+ overrideMessages,
+ locale,
+ fv1);
+
+ train_createValidator(
+ source,
+ field,
+ "cons2",
+ null,
+ overrideId,
+ overrideMessages,
+ locale,
+ fv2);
+
+ fv1.validate(value);
+ fv2.validate(value);
+
+ replay();
+
+ FieldValidatorDefaultSource fieldValidatorSource = new FieldValidatorDefaultSourceImpl(gen,
+ source);
+
+ FieldValidator composite = fieldValidatorSource.createDefaultValidator(
+ field,
+ overrideId,
+ overrideMessages,
+ locale,
+ propertyType,
+ provider);
+
+ composite.validate(value);
+
+ verify();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void validator_with_constraint() throws Exception
+ {
+ ValidationConstraintGenerator gen = newValidationConstraintGenerator();
+ FieldValidator fv = newFieldValidator();
+ FieldValidatorSource source = newFieldValidatorSource();
+ Class propertyType = Integer.class;
+ AnnotationProvider provider = newAnnotationProvider();
+ String overrideId = "overrideId";
+ Messages overrideMessages = newMessages();
+ Field field = newField();
+ Locale locale = Locale.ENGLISH;
+
+ train_buildConstraints(gen, propertyType, provider, "foo=bar");
+
+ train_createValidator(source, field, "foo", "bar", overrideId, overrideMessages, locale, fv);
+
+ replay();
+
+ FieldValidatorDefaultSource fieldValidatorSource = new FieldValidatorDefaultSourceImpl(gen,
+ source);
+
+ FieldValidator composite = fieldValidatorSource.createDefaultValidator(
+ field,
+ overrideId,
+ overrideMessages,
+ locale,
+ propertyType,
+ provider);
+
+ assertSame(composite, fv);
+
+ verify();
+ }
+
+ @SuppressWarnings("unchecked")
+ @Test
+ public void no_validators_at_all() throws Exception
+ {
+ ValidationConstraintGenerator gen = newValidationConstraintGenerator();
+ FieldValidatorSource source = newFieldValidatorSource();
+ Class propertyType = Integer.class;
+ AnnotationProvider provider = newAnnotationProvider();
+ String overrideId = "overrideId";
+ Messages overrideMessages = newMessages();
+ Field field = newField();
+ Locale locale = Locale.ENGLISH;
+ String value = "*VALUE*";
+
+ train_buildConstraints(gen, propertyType, provider);
+
+ replay();
+
+ FieldValidatorDefaultSource fieldValidatorSource = new FieldValidatorDefaultSourceImpl(gen,
+ source);
+
+ FieldValidator composite = fieldValidatorSource.createDefaultValidator(
+ field,
+ overrideId,
+ overrideMessages,
+ locale,
+ propertyType,
+ provider);
+
+ composite.validate(value);
+
+ verify();
+ }
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java?view=diff&rev=502421&r1=502420&r2=502421
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/main/java/org/apache/tapestry/test/TapestryTestCase.java Thu Feb 1 16:53:43 2007
@@ -82,6 +82,7 @@
import org.apache.tapestry.services.ResourceDigestGenerator;
import org.apache.tapestry.services.Response;
import org.apache.tapestry.services.Session;
+import org.apache.tapestry.services.ValidationConstraintGenerator;
import org.apache.tapestry.services.ValidationMessagesSource;
import org.easymock.EasyMock;
import org.easymock.IAnswer;
@@ -793,5 +794,33 @@
protected final PropertyEditModel newPropertyEditModel()
{
return newMock(PropertyEditModel.class);
+ }
+
+ protected final AnnotationProvider newAnnotationProvider()
+ {
+ return newMock(AnnotationProvider.class);
+ }
+
+ protected final void train_createValidator(FieldValidatorSource source, Field field, String validatorType, String constraintValue, String overrideId, Messages overrideMessages, Locale locale, FieldValidator result)
+ {
+ expect(
+ source.createValidator(
+ field,
+ validatorType,
+ constraintValue,
+ overrideId,
+ overrideMessages,
+ locale)).andReturn(result);
+ }
+
+ protected final void train_buildConstraints(ValidationConstraintGenerator generator, Class propertyType, AnnotationProvider provider, String... constraints)
+ {
+ expect(generator.buildConstraints(propertyType, provider)).andReturn(
+ Arrays.asList(constraints));
+ }
+
+ protected final ValidationConstraintGenerator newValidationConstraintGenerator()
+ {
+ return newMock(ValidationConstraintGenerator.class);
}
}