You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2007/12/18 11:05:58 UTC

svn commit: r605165 - in /wicket/trunk/jdk-1.4/wicket/src: main/java/org/apache/wicket/validation/ main/java/org/apache/wicket/validation/validator/ test/java/org/apache/wicket/validation/validator/

Author: jcompagner
Date: Tue Dec 18 02:05:58 2007
New Revision: 605165

URL: http://svn.apache.org/viewvc?rev=605165&view=rev
Log:
fix for NEGATIVE/POSITIVE Number validations (excluding 0)
added unit test for the NumberValidations (neg/pos/range/min/max)

Added:
    wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/validation/validator/NumberValidatorTest.java
Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/Validatable.java
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/NumberValidator.java

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/Validatable.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/Validatable.java?rev=605165&r1=605164&r2=605165&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/Validatable.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/Validatable.java Tue Dec 18 02:05:58 2007
@@ -66,6 +66,17 @@
 	}
 
 	/**
+	 * Constructor.
+	 * 
+	 * @param value
+	 *            The value that will be tested
+	 */
+	public Validatable(Object value)
+	{
+		this.value = value;
+	}
+
+	/**
 	 * Sets the value object that will be returned by {@link #getValue()}.
 	 * 
 	 * @param value

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/NumberValidator.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/NumberValidator.java?rev=605165&r1=605164&r2=605165&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/NumberValidator.java (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/validation/validator/NumberValidator.java Tue Dec 18 02:05:58 2007
@@ -41,12 +41,12 @@
 	/**
 	 * a validator for ensuring for a positive number value
 	 */
-	public static final NumberValidator POSITIVE = minimum(0);
+	public static final NumberValidator POSITIVE = minimum(Double.MIN_VALUE);
 
 	/**
-	 * a validator for ensuring a positive number value
+	 * a validator for ensuring a negative number value
 	 */
-	public static final NumberValidator NEGATIVE = maximum(0);
+	public static final NumberValidator NEGATIVE = maximum(-Double.MIN_VALUE);
 
 	/**
 	 * Gets an Integer range validator for checking if a number falls between the minimum and

Added: wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/validation/validator/NumberValidatorTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/validation/validator/NumberValidatorTest.java?rev=605165&view=auto
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/validation/validator/NumberValidatorTest.java (added)
+++ wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/validation/validator/NumberValidatorTest.java Tue Dec 18 02:05:58 2007
@@ -0,0 +1,216 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.wicket.validation.validator;
+
+import junit.framework.TestCase;
+
+import org.apache.wicket.validation.Validatable;
+
+/**
+ * @author jcompagner
+ */
+public class NumberValidatorTest extends TestCase
+{
+	/**
+	 * @throws Exception
+	 */
+	public void testNegative() throws Exception
+	{
+		Validatable validatable = new Validatable(new Integer(-1));
+		NumberValidator.NEGATIVE.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(0));
+		NumberValidator.NEGATIVE.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(1));
+		NumberValidator.NEGATIVE.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+	}
+
+	/**
+	 * @throws Exception
+	 */
+	public void testPositive() throws Exception
+	{
+		Validatable validatable = new Validatable(new Integer(-1));
+		NumberValidator.POSITIVE.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(0));
+		NumberValidator.POSITIVE.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(1));
+		NumberValidator.POSITIVE.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+	}
+
+	/**
+	 * @throws Exception
+	 */
+	public void testDoubleRange() throws Exception
+	{
+		NumberValidator range = NumberValidator.range(1.1, 1.8);
+
+		Validatable validatable = new Validatable(new Double(1));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(1.1));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(1.5));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(1.8));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(2));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+	}
+
+
+	/**
+	 * @throws Exception
+	 */
+	public void testDoubleMaximum() throws Exception
+	{
+		NumberValidator range = NumberValidator.maximum(1.8);
+
+		Validatable validatable = new Validatable(new Double(-100.8));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(1));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(1.8));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(2));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+	}
+
+	/**
+	 * @throws Exception
+	 */
+	public void testDoubleMinimum() throws Exception
+	{
+		NumberValidator range = NumberValidator.minimum(1.8);
+
+		Validatable validatable = new Validatable(new Double(-100.8));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(1));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(1.8));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Double(2));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+	}
+
+	/**
+	 * @throws Exception
+	 */
+	public void testIntegerMaximum() throws Exception
+	{
+		NumberValidator range = NumberValidator.maximum(8);
+
+		Validatable validatable = new Validatable(new Integer(-100));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(1));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(8));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(9));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+	}
+
+	/**
+	 * @throws Exception
+	 */
+	public void testIntegerMinimum() throws Exception
+	{
+		NumberValidator range = NumberValidator.minimum(8);
+
+		Validatable validatable = new Validatable(new Integer(-100));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(1));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(8));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(9));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+	}
+
+	/**
+	 * @throws Exception
+	 */
+	public void testIntegerRange() throws Exception
+	{
+		NumberValidator range = NumberValidator.range(1, 8);
+
+		Validatable validatable = new Validatable(new Integer(0));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(1));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(5));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(8));
+		range.validate(validatable);
+		assertEquals(0, validatable.getErrors().size());
+
+		validatable = new Validatable(new Integer(9));
+		range.validate(validatable);
+		assertEquals(1, validatable.getErrors().size());
+	}
+}