001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.commons.validator.routines;
018:
019: import java.util.Locale;
020:
021: /**
022: * Test Case for IntegerValidator.
023: *
024: * @version $Revision: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $
025: */
026: public class IntegerValidatorTest extends BaseNumberValidatorTest {
027:
028: /**
029: * Main
030: * @param args arguments
031: */
032: public static void main(String[] args) {
033: junit.textui.TestRunner.run(IntegerValidatorTest.class);
034: }
035:
036: /**
037: * Constructor
038: * @param name test name
039: */
040: public IntegerValidatorTest(String name) {
041: super (name);
042: }
043:
044: protected void setUp() throws Exception {
045: super .setUp();
046:
047: validator = new IntegerValidator(false, 0);
048: strictValidator = new IntegerValidator();
049:
050: testPattern = "#,###";
051:
052: // testValidateMinMax()
053: max = new Integer(Integer.MAX_VALUE);
054: maxPlusOne = new Long(max.longValue() + 1);
055: min = new Integer(Integer.MIN_VALUE);
056: minMinusOne = new Long(min.longValue() - 1);
057:
058: // testInvalidStrict()
059: invalidStrict = new String[] { null, "", "X", "X12", "12X",
060: "1X2", "1.2" };
061:
062: // testInvalidNotStrict()
063: invalid = new String[] { null, "", "X", "X12" };
064:
065: // testValid()
066: testNumber = new Integer(1234);
067: testZero = new Integer(0);
068: validStrict = new String[] { "0", "1234", "1,234" };
069: validStrictCompare = new Number[] { testZero, testNumber,
070: testNumber };
071: valid = new String[] { "0", "1234", "1,234", "1,234.5", "1234X" };
072: validCompare = new Number[] { testZero, testNumber, testNumber,
073: testNumber, testNumber };
074:
075: testStringUS = "1,234";
076: testStringDE = "1.234";
077:
078: // Localized Pattern test
079: localeValue = testStringDE;
080: localePattern = "#.###";
081: testLocale = Locale.GERMANY;
082: localeExpected = testNumber;
083: }
084:
085: /**
086: * Test IntegerValidator validate Methods
087: */
088: public void testIntegerValidatorMethods() {
089: Locale locale = Locale.GERMAN;
090: String pattern = "0,00,00";
091: String patternVal = "1,23,45";
092: String germanPatternVal = "1.23.45";
093: String localeVal = "12.345";
094: String defaultVal = "12,345";
095: String XXXX = "XXXX";
096: Integer expected = new Integer(12345);
097: assertEquals("validate(A) default", expected, IntegerValidator
098: .getInstance().validate(defaultVal));
099: assertEquals("validate(A) locale ", expected, IntegerValidator
100: .getInstance().validate(localeVal, locale));
101: assertEquals("validate(A) pattern", expected, IntegerValidator
102: .getInstance().validate(patternVal, pattern));
103: assertEquals("validate(A) both", expected, IntegerValidator
104: .getInstance().validate(germanPatternVal, pattern,
105: Locale.GERMAN));
106:
107: assertTrue("isValid(A) default", IntegerValidator.getInstance()
108: .isValid(defaultVal));
109: assertTrue("isValid(A) locale ", IntegerValidator.getInstance()
110: .isValid(localeVal, locale));
111: assertTrue("isValid(A) pattern", IntegerValidator.getInstance()
112: .isValid(patternVal, pattern));
113: assertTrue("isValid(A) both", IntegerValidator.getInstance()
114: .isValid(germanPatternVal, pattern, Locale.GERMAN));
115:
116: assertNull("validate(B) default", IntegerValidator
117: .getInstance().validate(XXXX));
118: assertNull("validate(B) locale ", IntegerValidator
119: .getInstance().validate(XXXX, locale));
120: assertNull("validate(B) pattern", IntegerValidator
121: .getInstance().validate(XXXX, pattern));
122: assertNull("validate(B) both", IntegerValidator.getInstance()
123: .validate(patternVal, pattern, Locale.GERMAN));
124:
125: assertFalse("isValid(B) default", IntegerValidator
126: .getInstance().isValid(XXXX));
127: assertFalse("isValid(B) locale ", IntegerValidator
128: .getInstance().isValid(XXXX, locale));
129: assertFalse("isValid(B) pattern", IntegerValidator
130: .getInstance().isValid(XXXX, pattern));
131: assertFalse("isValid(B) both", IntegerValidator.getInstance()
132: .isValid(patternVal, pattern, Locale.GERMAN));
133: }
134:
135: /**
136: * Test Integer Range/Min/Max
137: */
138: public void testIntegerRangeMinMax() {
139: IntegerValidator validator = (IntegerValidator) strictValidator;
140: Integer number9 = validator.validate("9", "#");
141: Integer number10 = validator.validate("10", "#");
142: Integer number11 = validator.validate("11", "#");
143: Integer number19 = validator.validate("19", "#");
144: Integer number20 = validator.validate("20", "#");
145: Integer number21 = validator.validate("21", "#");
146:
147: // Test isInRange()
148: assertFalse("isInRange() < min", validator.isInRange(number9,
149: 10, 20));
150: assertTrue("isInRange() = min", validator.isInRange(number10,
151: 10, 20));
152: assertTrue("isInRange() in range", validator.isInRange(
153: number11, 10, 20));
154: assertTrue("isInRange() = max", validator.isInRange(number20,
155: 10, 20));
156: assertFalse("isInRange() > max", validator.isInRange(number21,
157: 10, 20));
158:
159: // Test minValue()
160: assertFalse("minValue() < min", validator.minValue(number9, 10));
161: assertTrue("minValue() = min", validator.minValue(number10, 10));
162: assertTrue("minValue() > min", validator.minValue(number11, 10));
163:
164: // Test minValue()
165: assertTrue("maxValue() < max", validator.maxValue(number19, 20));
166: assertTrue("maxValue() = max", validator.maxValue(number20, 20));
167: assertFalse("maxValue() > max", validator
168: .maxValue(number21, 20));
169: }
170: }
|