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 [EMAIL PROTECTED] 
#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());
+       }
+}


Reply via email to