Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FieldValidatorImplTest.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FieldValidatorImplTest.java?view=diff&rev=503777&r1=503776&r2=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FieldValidatorImplTest.java (original) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FieldValidatorImplTest.java Mon Feb 5 09:15:39 2007 @@ -16,9 +16,12 @@ import org.apache.tapestry.Field; import org.apache.tapestry.FieldValidator; +import org.apache.tapestry.ValidationException; import org.apache.tapestry.Validator; import org.apache.tapestry.internal.test.InternalBaseTestCase; import org.apache.tapestry.ioc.MessageFormatter; +import org.apache.tapestry.validator.Max; +import org.apache.tapestry.validator.Min; import org.testng.annotations.Test; /** @@ -26,83 +29,200 @@ */ public class FieldValidatorImplTest extends InternalBaseTestCase { - @SuppressWarnings("unchecked") + @SuppressWarnings("serial") @Test public void null_value_skipped() throws Exception { - Field field = newField(); - MessageFormatter formatter = newMessageFormatter(); - Validator validator = newValidator(); + Field field = null; + FieldValidatorMessages messages = new FieldValidatorMessages() + { + public MessageFormatter get(Field field, Validator validator) + { + return null; + } + + }; + Validator<Object> validator = new NoOpValidator<Object>() + { + + @Override + public void validate(Field field, MessageFormatter formatter, Object value) + throws ValidationException + { + fail(); + } + }; - train_invokeIfBlank(validator, false); - - replay(); - - FieldValidator fv = new FieldValidatorImpl(field, null, formatter, validator); + FieldValidator<Object> fv = new FieldValidatorImpl<Object>(field, messages, validator); fv.validate(null); - - verify(); } - @SuppressWarnings("unchecked") + @SuppressWarnings("serial") @Test public void blank_value_skipped() throws Exception { - Field field = newField(); - MessageFormatter formatter = newMessageFormatter(); - Validator validator = newValidator(); - - train_invokeIfBlank(validator, false); - - replay(); + Field field = null; + FieldValidatorMessages messages = new FieldValidatorMessages() + { + public MessageFormatter get(Field field, Validator validator) + { + return null; + } + + }; + Validator<Object> validator = new NoOpValidator<Object>() + { + + @Override + public void validate(Field field, MessageFormatter formatter, Object value) + throws ValidationException + { + fail(); + } + }; - FieldValidator fv = new FieldValidatorImpl(field, null, formatter, validator); + FieldValidator<Object> fv = new FieldValidatorImpl<Object>(field, messages, validator); fv.validate(""); - verify(); } - @SuppressWarnings("unchecked") @Test - public void nonmatching_value_type_skipped() throws Exception + public void single_validator() throws Exception { - Field field = newField(); - MessageFormatter formatter = newMessageFormatter(); - Validator validator = newValidator(); - Integer value = 15; - - train_invokeIfBlank(validator, true); - train_getValueType(validator, String.class); - - replay(); - - FieldValidator fv = new FieldValidatorImpl(field, null, formatter, validator); - - fv.validate(value); + final Field field = new NoOpField() + { - verify(); + @Override + public String getLabel() + { + return "foo"; + } + + }; + final Min min = new Min(10); + FieldValidatorMessages messages = new FieldValidatorMessages() + { + public MessageFormatter get(Field field2, Validator validator) + { + assertSame(field2, field); + assertSame(validator, min); + return new MessageFormatter() + { + + public String format(Object... args) + { + return String.format("%2$s must be at least %1$s", args); + } + + }; + } + + }; + FieldValidator<Number> fv = new FieldValidatorImpl<Number>(field, messages, min); + fv.validate(10); + fv.validate(11); + try + { + fv.validate(9); + unreachable(); + } + catch (ValidationException ex) + { + assertEquals(ex.getMessage(), "foo must be at least 10"); + } } - @SuppressWarnings("unchecked") @Test - public void value_type_check_skipped_for_null_values() throws Exception + public void two_validators() throws Exception { - Field field = newField(); - MessageFormatter formatter = newMessageFormatter(); - Validator validator = newValidator(); + final Field field = new NoOpField() + { - train_invokeIfBlank(validator, true); - - validator.validate(field, null, formatter, null); - - replay(); - - FieldValidator fv = new FieldValidatorImpl(field, null, formatter, validator); + @Override + public String getLabel() + { + return "foo"; + } + + }; + final Min min = new Min(10); + final Max max = new Max(12); + FieldValidatorMessages messages = new FieldValidatorMessages() + { + public MessageFormatter get(Field field2, Validator validator) + { + assertSame(field2, field); + if (validator == min) + { + return null; + } + return validator == max ? new MessageFormatter() + { + + public String format(Object... args) + { + return String.format("%2$s must be at most %1$s", args); + } + + } : null; + } + + }; + FieldValidator<Number> fv = new FieldValidatorImpl<Number>(field, messages, min, max); + fv.validate(10); + fv.validate(11); + fv.validate(12); + try + { + fv.validate(13); + unreachable(); + } + catch (ValidationException ex) + { + assertEquals(ex.getMessage(), "foo must be at most 12"); + } + FieldValidator<Number> fv2 = new FieldValidatorImpl<Number>(field, messages, max, min); + fv2.validate(10); + fv2.validate(11); + fv2.validate(12); + try + { + fv2.validate(13); + unreachable(); + } + catch (ValidationException ex) + { + assertEquals(ex.getMessage(), "foo must be at most 12"); + } + } - fv.validate(null); + @Test + public void null_validators() throws Exception + { + final Field field = new NoOpField() + { - verify(); + @Override + public String getLabel() + { + return "foo"; + } + + }; + FieldValidatorMessages messages = new FieldValidatorMessages() + { + public MessageFormatter get(Field field2, Validator validator) + { + return null; + } + + }; + FieldValidator<Number> fv = new FieldValidatorImpl<Number>(field, messages, + (Validator<? super Number>[]) null); + fv.validate(10); + fv.validate(11); } + }
Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FieldValidatorMessagesImplTest.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FieldValidatorMessagesImplTest.java?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FieldValidatorMessagesImplTest.java (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FieldValidatorMessagesImplTest.java Mon Feb 5 09:15:39 2007 @@ -0,0 +1,99 @@ +package org.apache.tapestry.internal.services; + +import java.util.Locale; +import java.util.Map; + +import org.apache.tapestry.ComponentResources; +import org.apache.tapestry.Field; +import org.apache.tapestry.Validator; +import org.apache.tapestry.ioc.MessageFormatter; +import org.apache.tapestry.ioc.Messages; +import org.apache.tapestry.ioc.internal.util.CollectionFactory; +import org.apache.tapestry.services.ValidationMessagesSource; +import org.testng.Assert; +import org.testng.annotations.Test; + +public class FieldValidatorMessagesImplTest extends Assert +{ + @SuppressWarnings("serial") + private static class MyValidator1<T> extends NoOpValidator<T> + { + @Override + public String getMessageKey() + { + return "k1"; + } + + } + + @SuppressWarnings("serial") + private static class MyValidator2<T> extends NoOpValidator<T> + { + @Override + public String getMessageKey() + { + return "k2"; + } + + } + + @Test + public void global_and_override() + { + final ComponentResources resources = new NoOpComponentResources() + { + + @Override + public Locale getLocale() + { + return Locale.FRENCH; + } + + @Override + public String getId() + { + return "id1"; + } + + @Override + public Messages getContainerMessages() + { + Map<String, String> map = CollectionFactory.newMap(); + map.put("id1-k2", "overriding: %s %s"); + return new MapMessages(map); + } + + }; + Field field = new NoOpFieldComponent() + { + + @Override + public ComponentResources getComponentResources() + { + return resources; + } + + }; + ValidationMessagesSource messageSources = new ValidationMessagesSource() + { + + public Messages getValidationMessages(Locale locale) + { + assertEquals(locale, Locale.FRENCH); + Map<String, String> map = CollectionFactory.newMap(); + map.put("k1", "abc %s def %s"); + map.put("k2", "123 %s 456 %s"); + return new MapMessages(map); + } + + }; + ; + FieldValidatorMessages messages = new FieldValidatorMessagesImpl(messageSources); + Validator<Object> validator1 = new MyValidator1<Object>(); + MessageFormatter formatter = messages.get(field, validator1); + assertEquals(formatter.format("x", "y"), "abc x def y"); + Validator<Object> validator2 = new MyValidator2<Object>(); + formatter = messages.get(field, validator2); + assertEquals(formatter.format("x", "y"), "overriding: x y"); + } +} Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FieldValidatorMessagesImplTest.java ------------------------------------------------------------------------------ svn:eol-style = native Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FormPersistWorkerTest.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FormPersistWorkerTest.java?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FormPersistWorkerTest.java (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FormPersistWorkerTest.java Mon Feb 5 09:15:39 2007 @@ -0,0 +1,80 @@ +package org.apache.tapestry.internal.services; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.List; + +import org.apache.tapestry.annotations.FormPersist; +import org.apache.tapestry.services.ClassTransformation; +import org.apache.tapestry.services.MethodSignature; +import org.testng.Assert; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +public class FormPersistWorkerTest extends Assert +{ + private boolean called; + + @Test + public void transform() + { + FormPersistWorker worker = new FormPersistWorker(); + ClassTransformation transformation = new NoOpClassTransformation() + { + + @Override + public List<String> findFieldsWithAnnotation(Class<? extends Annotation> annotationClass) + { + assertSame(annotationClass, FormPersist.class); + return Arrays.asList("f1", "f2", "_f3"); + } + + @Override + public void extendMethod(MethodSignature methodSignature, String methodBody) + { + assertEquals(methodSignature.getModifiers(), Modifier.PROTECTED); + assertEquals(methodSignature.getReturnType(), "void"); + assertEquals(methodSignature.getMethodName(), "collectFormPersistPropNames"); + assertEquals(methodSignature.getParameterTypes(), new String[] + { "java.util.List" }); + assertEquals(methodBody, "$1.add(\"f1\");" + "$1.add(\"f2\");" + "$1.add(\"f3\");"); + called = true; + } + + }; + worker.transform(transformation, null); + assertTrue(called); + } + + @Test + public void no_such_field() + { + FormPersistWorker worker = new FormPersistWorker(); + ClassTransformation transformation = new NoOpClassTransformation() + { + + @Override + public List<String> findFieldsWithAnnotation(Class<? extends Annotation> annotationClass) + { + assertSame(annotationClass, FormPersist.class); + return Arrays.asList(); + } + + @Override + public void extendMethod(MethodSignature methodSignature, String methodBody) + { + called = true; + } + + }; + worker.transform(transformation, null); + assertFalse(called); + } + + @BeforeMethod + void before() + { + called = false; + } +} Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/FormPersistWorkerTest.java ------------------------------------------------------------------------------ svn:eol-style = native Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpClassTransformation.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpClassTransformation.java?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpClassTransformation.java (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpClassTransformation.java Mon Feb 5 09:15:39 2007 @@ -0,0 +1,155 @@ +package org.apache.tapestry.internal.services; + +import java.lang.annotation.Annotation; +import java.util.List; + +import org.apache.commons.logging.Log; +import org.apache.tapestry.services.ClassTransformation; +import org.apache.tapestry.services.FieldFilter; +import org.apache.tapestry.services.MethodFilter; +import org.apache.tapestry.services.MethodSignature; + +public class NoOpClassTransformation implements ClassTransformation +{ + + public String getClassName() + { + return null; + } + + public String newMemberName(String suggested) + { + return null; + } + + public List<String> findFieldsWithAnnotation(Class<? extends Annotation> annotationClass) + { + return null; + } + + public List<String> findFieldsOfType(String type) + { + return null; + } + + public List<MethodSignature> findMethodsWithAnnotation(Class<? extends Annotation> annotationClass) + { + return null; + } + + public List<MethodSignature> findMethods(MethodFilter filter) + { + return null; + } + + public List<String> findFields(FieldFilter filter) + { + return null; + } + + public <T extends Annotation> T getFieldAnnotation(String fieldName, Class<T> annotationClass) + { + return null; + } + + public <T extends Annotation> T getMethodAnnotation(MethodSignature method, Class<T> annotationClass) + { + return null; + } + + public void claimField(String fieldName, Object tag) + { + + } + + public void makeReadOnly(String fieldName) + { + + } + + public List<String> findUnclaimedFields() + { + return null; + } + + public String getFieldType(String fieldName) + { + return null; + } + + public String addField(int modifiers, String type, String suggestedName) + { + return null; + } + + public String addInjectedField(Class type, String suggestedName, Object value) + { + return null; + } + + public void injectField(String fieldName, Object value) + { + + } + + public void addImplementedInterface(Class interfaceClass) + { + + } + + public void extendMethod(MethodSignature methodSignature, String methodBody) + { + + } + + public String getResourcesFieldName() + { + return null; + } + + public void addMethod(MethodSignature signature, String methodBody) + { + + } + + public void addToConstructor(String statement) + { + + } + + public void replaceReadAccess(String fieldName, String methodName) + { + + } + + public void replaceWriteAccess(String fieldName, String methodName) + { + + } + + public void removeField(String fieldName) + { + + } + + public Class toClass(String type) + { + return null; + } + + public Log getLog() + { + return null; + } + + public <T extends Annotation> T getAnnotation(Class<T> annotationClass) + { + return null; + } + + public List<String> findFieldsWithAnnotation(Class<? extends Annotation> annotationClass, boolean searchAncestors) + { + return null; + } + +} Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpClassTransformation.java ------------------------------------------------------------------------------ svn:eol-style = native Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java Mon Feb 5 09:15:39 2007 @@ -0,0 +1,134 @@ +package org.apache.tapestry.internal.services; + +import java.util.Locale; + +import org.apache.commons.logging.Log; +import org.apache.tapestry.AnnotationProvider; +import org.apache.tapestry.Block; +import org.apache.tapestry.ComponentEventHandler; +import org.apache.tapestry.ComponentResources; +import org.apache.tapestry.Link; +import org.apache.tapestry.MarkupWriter; +import org.apache.tapestry.ioc.Messages; +import org.apache.tapestry.model.ComponentModel; +import org.apache.tapestry.runtime.Component; + +public class NoOpComponentResources implements ComponentResources +{ + + public ComponentModel getComponentModel() + { + return null; + } + + public Component getComponent() + { + return null; + } + + public Component getContainer() + { + return null; + } + + public ComponentResources getContainerResources() + { + return null; + } + + public Messages getContainerMessages() + { + return null; + } + + public Component getPage() + { + return null; + } + + public Component getEmbeddedComponent(String embeddedId) + { + return null; + } + + public boolean isBound(String parameterName) + { + return false; + } + + public void renderInformalParameters(MarkupWriter writer) + { + + } + + public Messages getMessages() + { + return null; + } + + public Class getBoundType(String parameterName) + { + return null; + } + + public AnnotationProvider getAnnotationProvider(String parameterName) + { + return null; + } + + public String getId() + { + return null; + } + + public String getNestedId() + { + return null; + } + + public Link createActionLink(String action, boolean forForm, Object... context) + { + return null; + } + + public Link createPageLink(String pageName) + { + return null; + } + + public String getCompleteId() + { + return null; + } + + public boolean triggerEvent(String eventType, Object[] context, ComponentEventHandler handler) + { + return false; + } + + public boolean isRendering() + { + return false; + } + + public Log getLog() + { + return null; + } + + public Locale getLocale() + { + return null; + } + + public String getElementName() + { + return null; + } + + public Block getBlock(String blockId) + { + return null; + } + +} Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpComponentResources.java ------------------------------------------------------------------------------ svn:eol-style = native Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpField.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpField.java?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpField.java (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpField.java Mon Feb 5 09:15:39 2007 @@ -0,0 +1,28 @@ +package org.apache.tapestry.internal.services; + +import org.apache.tapestry.Field; + +public class NoOpField implements Field +{ + + public String getElementName() + { + return null; + } + + public String getClientId() + { + return null; + } + + public String getLabel() + { + return null; + } + + public boolean isDisabled() + { + return false; + } + +} Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpField.java ------------------------------------------------------------------------------ svn:eol-style = native Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpFieldComponent.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpFieldComponent.java?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpFieldComponent.java (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpFieldComponent.java Mon Feb 5 09:15:39 2007 @@ -0,0 +1,83 @@ +package org.apache.tapestry.internal.services; + +import org.apache.tapestry.ComponentResources; +import org.apache.tapestry.MarkupWriter; +import org.apache.tapestry.runtime.Component; +import org.apache.tapestry.runtime.ComponentEvent; +import org.apache.tapestry.runtime.Event; + +public class NoOpFieldComponent extends NoOpField implements Component +{ + + public void postRenderCleanup() + { + + } + + public void setupRender(MarkupWriter writer, Event event) + { + + } + + public void beginRender(MarkupWriter writer, Event event) + { + + } + + public void beforeRenderTemplate(MarkupWriter writer, Event event) + { + + } + + public void afterRenderTemplate(MarkupWriter writer, Event event) + { + + } + + public void beforeRenderBody(MarkupWriter writer, Event event) + { + + } + + public void afterRenderBody(MarkupWriter writer, Event event) + { + + } + + public void afterRender(MarkupWriter writer, Event event) + { + + } + + public void cleanupRender(MarkupWriter writer, Event event) + { + + } + + public boolean handleComponentEvent(ComponentEvent event) + { + return false; + } + + public ComponentResources getComponentResources() + { + return null; + } + + public void containingPageDidLoad() + { + + } + + public void containingPageDidDetach() + { + + } + + public void containingPageDidAttach() + { + + } + + +} Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpFieldComponent.java ------------------------------------------------------------------------------ svn:eol-style = native Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpValidator.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpValidator.java?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpValidator.java (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpValidator.java Mon Feb 5 09:15:39 2007 @@ -0,0 +1,30 @@ +package org.apache.tapestry.internal.services; + +import java.io.Serializable; + +import org.apache.tapestry.Field; +import org.apache.tapestry.ValidationException; +import org.apache.tapestry.Validator; +import org.apache.tapestry.ioc.MessageFormatter; + +public class NoOpValidator<T> implements Validator<T>, Serializable +{ + private static final long serialVersionUID = 1L; + + public String getMessageKey() + { + return null; + } + + public void validate(Field field, MessageFormatter formatter, T value) + throws ValidationException + { + + } + + public boolean invokeIfBlank() + { + return false; + } + +} Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/internal/services/NoOpValidator.java ------------------------------------------------------------------------------ svn:eol-style = native Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/services/NoOpBindingSource.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/services/NoOpBindingSource.java?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/services/NoOpBindingSource.java (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/services/NoOpBindingSource.java Mon Feb 5 09:15:39 2007 @@ -0,0 +1,20 @@ +package org.apache.tapestry.services; + +import org.apache.tapestry.Binding; +import org.apache.tapestry.ComponentResources; +import org.apache.tapestry.ioc.Location; + +public class NoOpBindingSource implements BindingSource +{ + + public Binding newBinding(String description, ComponentResources container, ComponentResources component, String defaultPrefix, String expression, Location location) + { + return null; + } + + public Binding newBinding(String description, ComponentResources container, String expression) + { + return null; + } + +} Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/services/NoOpBindingSource.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MaxLengthTest.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MaxLengthTest.java?view=diff&rev=503777&r1=503776&r2=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MaxLengthTest.java (original) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MaxLengthTest.java Mon Feb 5 09:15:39 2007 @@ -16,6 +16,7 @@ import org.apache.tapestry.Field; import org.apache.tapestry.ValidationException; +import org.apache.tapestry.internal.services.NoOpField; import org.apache.tapestry.internal.test.InternalBaseTestCase; import org.apache.tapestry.ioc.MessageFormatter; import org.testng.annotations.Test; @@ -31,9 +32,9 @@ replay(); - MaxLength validator = new MaxLength(); + MaxLength validator = new MaxLength(value.length()); - validator.validate(field, value.length(), formatter, value); + validator.validate(field, formatter, value); verify(); } @@ -41,29 +42,35 @@ @Test public void long_value() throws Exception { - String label = "My Field"; - Field field = newFieldWithLabel(label); - MessageFormatter formatter = newMessageFormatter(); - String value = "Now the student has become the master."; - String message = "{message}"; - Integer constraint = value.length() - 1; - - train_format(formatter, message, constraint, label); - - replay(); - - MaxLength validator = new MaxLength(); + Field field = new NoOpField() + { + + @Override + public String getLabel() + { + return "foo"; + } + + }; + MessageFormatter formatter = new MessageFormatter() + { + + public String format(Object... args) + { + return String.format("aaa %1$s %2$s bbb", args); + } + + }; + MaxLength validator = new MaxLength(5); try { - validator.validate(field, constraint, formatter, value); + validator.validate(field, formatter, "abcdef"); unreachable(); } catch (ValidationException ex) { - assertEquals(ex.getMessage(), message); + assertEquals(ex.getMessage(), "aaa 5 foo bbb"); } - - verify(); } } Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MaxTest.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MaxTest.java?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MaxTest.java (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MaxTest.java Mon Feb 5 09:15:39 2007 @@ -0,0 +1,76 @@ +// 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 org.apache.tapestry.Field; +import org.apache.tapestry.ValidationException; +import org.apache.tapestry.internal.services.NoOpField; +import org.apache.tapestry.internal.test.InternalBaseTestCase; +import org.apache.tapestry.ioc.MessageFormatter; +import org.testng.annotations.Test; + +public class MaxTest extends InternalBaseTestCase +{ + @Test + public void small_enough() throws Exception + { + Field field = newField(); + MessageFormatter formatter = newMessageFormatter(); + + replay(); + + Max validator = new Max(501L); + + for (int value = 48; value <= 50; value++) + validator.validate(field, formatter, value); + + verify(); + } + + @Test + public void value_too_large() throws Exception + { + Field field = new NoOpField() + { + + @Override + public String getLabel() + { + return "foo"; + } + + }; + MessageFormatter formatter = new MessageFormatter() + { + + public String format(Object... args) + { + return String.format("aaa %1$s %2$s bbb", args); + } + + }; + Max validator = new Max(100L); + + try + { + validator.validate(field, formatter, 101); + unreachable(); + } + catch (ValidationException ex) + { + assertEquals(ex.getMessage(), "aaa 100 foo bbb"); + } + } +} Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MaxTest.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MinLengthTest.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MinLengthTest.java?view=diff&rev=503777&r1=503776&r2=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MinLengthTest.java (original) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MinLengthTest.java Mon Feb 5 09:15:39 2007 @@ -16,6 +16,7 @@ import org.apache.tapestry.Field; import org.apache.tapestry.ValidationException; +import org.apache.tapestry.internal.services.NoOpField; import org.apache.tapestry.internal.test.InternalBaseTestCase; import org.apache.tapestry.ioc.MessageFormatter; import org.testng.annotations.Test; @@ -32,9 +33,9 @@ replay(); - MinLength validator = new MinLength(); + MinLength validator = new MinLength(value.length()); - validator.validate(field, value.length(), formatter, value); + validator.validate(field, formatter, value); verify(); } @@ -42,29 +43,35 @@ @Test public void short_value() throws Exception { - String label = "My Field"; - Field field = newFieldWithLabel(label); - MessageFormatter formatter = newMessageFormatter(); - String value = "Now the student has become the master."; - String message = "{message}"; - Integer constraint = value.length() + 1; - - train_format(formatter, message, constraint, label); - - replay(); - - MinLength validator = new MinLength(); + Field field = new NoOpField() + { + + @Override + public String getLabel() + { + return "foo"; + } + + }; + MessageFormatter formatter = new MessageFormatter() + { + + public String format(Object... args) + { + return String.format("aaa %1$s %2$s bbb", args); + } + + }; + MinLength validator = new MinLength(5); try { - validator.validate(field, constraint, formatter, value); + validator.validate(field, formatter, "abcd"); unreachable(); } catch (ValidationException ex) { - assertEquals(ex.getMessage(), message); + assertEquals(ex.getMessage(), "aaa 5 foo bbb"); } - - verify(); } } Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MinTest.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MinTest.java?view=diff&rev=503777&r1=503776&r2=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MinTest.java (original) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/MinTest.java Mon Feb 5 09:15:39 2007 @@ -16,6 +16,7 @@ import org.apache.tapestry.Field; import org.apache.tapestry.ValidationException; +import org.apache.tapestry.internal.services.NoOpField; import org.apache.tapestry.internal.test.InternalBaseTestCase; import org.apache.tapestry.ioc.MessageFormatter; import org.testng.annotations.Test; @@ -27,14 +28,13 @@ { Field field = newField(); MessageFormatter formatter = newMessageFormatter(); - Long constraint = 50l; replay(); - Min validator = new Min(); + Min validator = new Min(50l); for (int value = 50; value < 52; value++) - validator.validate(field, constraint, formatter, value); + validator.validate(field, formatter, value); verify(); } @@ -42,29 +42,35 @@ @Test public void value_too_small() throws Exception { - String label = "My Field"; - Field field = newFieldWithLabel(label); - MessageFormatter formatter = newMessageFormatter(); - String message = "{message}"; - Long constraint = 100l; - Number value = 99; - - train_format(formatter, message, constraint, label); - - replay(); - - Min validator = new Min(); + Field field = new NoOpField() + { + + @Override + public String getLabel() + { + return "foo"; + } + + }; + MessageFormatter formatter = new MessageFormatter() + { + + public String format(Object... args) + { + return String.format("aaa %1$s %2$s bbb", args); + } + + }; + Min validator = new Min(100L); try { - validator.validate(field, constraint, formatter, value); + validator.validate(field, formatter, 99); unreachable(); } catch (ValidationException ex) { - assertEquals(ex.getMessage(), message); + assertEquals(ex.getMessage(), "aaa 100 foo bbb"); } - - verify(); } } Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/RequiredTest.java URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/RequiredTest.java?view=diff&rev=503777&r1=503776&r2=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/RequiredTest.java (original) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/java/org/apache/tapestry/validator/RequiredTest.java Mon Feb 5 09:15:39 2007 @@ -34,7 +34,7 @@ try { - new Required().validate(field, null, formatter, null); + new Required().validate(field, formatter, null); unreachable(); } catch (ValidationException ex) @@ -57,7 +57,7 @@ try { - new Required().validate(field, null, formatter, ""); + new Required().validate(field, formatter, ""); unreachable(); } catch (ValidationException ex) @@ -76,7 +76,7 @@ replay(); - new Required().validate(field, null, formatter, "not null"); + new Required().validate(field, formatter, "not null"); verify(); } Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app1/pages/ValidForm.html URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app1/pages/ValidForm.html?view=diff&rev=503777&r1=503776&r2=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app1/pages/ValidForm.html (original) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app1/pages/ValidForm.html Mon Feb 5 09:15:39 2007 @@ -8,17 +8,17 @@ <t:comp type="Errors"/> <label t:type="Label" for="email">This isn't used</label>: <input - t:type="TextField" t:id="email" value="incident.email" size="50" t:validate="required"/> + t:id="email" size="50"/> <br/> - <label t:type="Label" for="message"/>: <textarea t:type="TextArea" t:id="message" t:label="Incident Message" - value="incident.message" cols="50" rows="10"> You can put text here, but it isn't used. </textarea> + <label t:type="Label" for="message"/>: <textarea t:id="message" + cols="50" rows="10"> You can put text here, but it isn't used. </textarea> <br/> - <input t:type="Checkbox" t:id="urgent" value="incident.urgent"/> + <input t:id="urgent" /> <label t:type="Label" for="urgent"/> <br/> <label t:type="Label" for="hours"/>: - <input t:type="TextField" t:id="hours" value="incident.hours" size="10" t:validate="required"/> + <input t:id="hours" size="10"/> <br/> Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForForm.html URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForForm.html?view=diff&rev=503777&r1=503776&r2=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForForm.html (original) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForForm.html Mon Feb 5 09:15:39 2007 @@ -1,6 +1,6 @@ <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <p><t:comp id="form1" type="Form"> - <t:comp type="TextField" id="t1" value="value" size="50"/> + <t:comp id="t1" size="50"/> </t:comp></p> <p> You entered: ${value}. Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForSelect.html URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForSelect.html?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForSelect.html (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForSelect.html Mon Feb 5 09:15:39 2007 @@ -0,0 +1,21 @@ +<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> +<p><form t:id="form1" > + <span t:id="errors"/> + <select t:id="select1"> + <option>a</option> + <option>b</option> + </select> +</form></p> +<p> + You entered: <span id="v1">${v1}</span>. +</p> +<p><form t:id="form2" > + <select t:id="select2"> + <option>a</option> + <option>b</option> + </select> +</form></p> +<p> + You entered: <span id="v2">${v2}</span>. +</p> +</html> Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForSelect.html ------------------------------------------------------------------------------ svn:eol-style = native Modified: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForSubmit.html URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForSubmit.html?view=diff&rev=503777&r1=503776&r2=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForSubmit.html (original) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForSubmit.html Mon Feb 5 09:15:39 2007 @@ -1,12 +1,12 @@ <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <p> <form t:id="form1"> - <t:comp id="t1" type="TextField"/> + <t:comp id="t1"/> <t:comp id="capitalize1"/> </form> <form t:id="form2"> <t:comp id="capitalize2"/> - <t:comp id="t2" type="TextField"/> + <t:comp id="t2"/> </form></p> <input type="submit" id="orphanedSubmit"/> <p> Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.html URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.html?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.html (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.html Mon Feb 5 09:15:39 2007 @@ -0,0 +1,27 @@ +<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> +<p><form t:id="form1" > + <span t:id="errors"/> + <input t:id="t1" /> +</form></p> +<p> + You entered: <span id="v1">${v1}</span>. +</p> +<p><form t:id="form2" > + <input t:id="t2" /> +</form></p> +<p> + You entered: <span id="v2">${t2}</span>. +</p> +<p><form t:id="form3" > + <input t:id="t3" /> +</form></p> +<p> + You entered: <span id="v3">${v3}</span>. +</p> +<p><form t:id="form4" > + <input t:id="t4" /> +</form></p> +<p> + You entered: <span id="v4">${v4}</span>. +</p> +</html> Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.html ------------------------------------------------------------------------------ svn:eol-style = native Added: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.properties URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.properties?view=auto&rev=503777 ============================================================================== --- tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.properties (added) +++ tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.properties Mon Feb 5 09:15:39 2007 @@ -0,0 +1 @@ +t1-max-integer=Error: %2$s is larger than %1$d. Propchange: tapestry/tapestry5/tapestry-core/branches/kt-20070205-IDE-support/src/test/resources/org/apache/tapestry/integration/app2/pages/TestPageForTextField.properties ------------------------------------------------------------------------------ svn:eol-style = native
