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.math.BigInteger;
020: import java.util.Locale;
021:
022: /**
023: * Test Case for BigIntegerValidator.
024: *
025: * @version $Revision: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $
026: */
027: public class BigIntegerValidatorTest extends BaseNumberValidatorTest {
028:
029: /**
030: * Main
031: * @param args arguments
032: */
033: public static void main(String[] args) {
034: junit.textui.TestRunner.run(BigIntegerValidatorTest.class);
035: }
036:
037: /**
038: * Constructor
039: * @param name test name
040: */
041: public BigIntegerValidatorTest(String name) {
042: super (name);
043: }
044:
045: protected void setUp() throws Exception {
046: super .setUp();
047:
048: validator = new BigIntegerValidator(false, 0);
049: strictValidator = new BigIntegerValidator();
050:
051: testPattern = "#,###";
052:
053: // testValidateMinMax()
054: max = null;
055: maxPlusOne = null;
056: min = null;
057: minMinusOne = null;
058:
059: // testInvalidStrict()
060: invalidStrict = new String[] { null, "", "X", "X12", "12X",
061: "1X2", "1.2" };
062:
063: // testInvalidNotStrict()
064: invalid = new String[] { null, "", "X", "X12" };
065:
066: // testValid()
067: testNumber = new BigInteger("1234");
068: testZero = new BigInteger("0");
069: validStrict = new String[] { "0", "1234", "1,234" };
070: validStrictCompare = new Number[] { testZero, testNumber,
071: testNumber };
072: valid = new String[] { "0", "1234", "1,234", "1,234.5", "1234X" };
073: validCompare = new Number[] { testZero, testNumber, testNumber,
074: testNumber, testNumber };
075:
076: testStringUS = "1,234";
077: testStringDE = "1.234";
078:
079: // Localized Pattern test
080: localeValue = testStringDE;
081: localePattern = "#.###";
082: testLocale = Locale.GERMANY;
083: localeExpected = testNumber;
084:
085: }
086:
087: /**
088: * Test BigIntegerValidator validate Methods
089: */
090: public void testBigIntegerValidatorMethods() {
091: Locale locale = Locale.GERMAN;
092: String pattern = "0,00,00";
093: String patternVal = "1,23,45";
094: String germanPatternVal = "1.23.45";
095: String localeVal = "12.345";
096: String defaultVal = "12,345";
097: String XXXX = "XXXX";
098: BigInteger expected = new BigInteger("12345");
099: assertEquals("validate(A) default", expected,
100: BigIntegerValidator.getInstance().validate(defaultVal));
101: assertEquals("validate(A) locale ", expected,
102: BigIntegerValidator.getInstance().validate(localeVal,
103: locale));
104: assertEquals("validate(A) pattern", expected,
105: BigIntegerValidator.getInstance().validate(patternVal,
106: pattern));
107: assertEquals("validate(A) both", expected, BigIntegerValidator
108: .getInstance().validate(germanPatternVal, pattern,
109: Locale.GERMAN));
110:
111: assertTrue("isValid(A) default", BigIntegerValidator
112: .getInstance().isValid(defaultVal));
113: assertTrue("isValid(A) locale ", BigIntegerValidator
114: .getInstance().isValid(localeVal, locale));
115: assertTrue("isValid(A) pattern", BigIntegerValidator
116: .getInstance().isValid(patternVal, pattern));
117: assertTrue("isValid(A) both", BigIntegerValidator.getInstance()
118: .isValid(germanPatternVal, pattern, Locale.GERMAN));
119:
120: assertNull("validate(B) default", BigIntegerValidator
121: .getInstance().validate(XXXX));
122: assertNull("validate(B) locale ", BigIntegerValidator
123: .getInstance().validate(XXXX, locale));
124: assertNull("validate(B) pattern", BigIntegerValidator
125: .getInstance().validate(XXXX, pattern));
126: assertNull("validate(B) both", BigIntegerValidator
127: .getInstance().validate(patternVal, pattern,
128: Locale.GERMAN));
129:
130: assertFalse("isValid(B) default", BigIntegerValidator
131: .getInstance().isValid(XXXX));
132: assertFalse("isValid(B) locale ", BigIntegerValidator
133: .getInstance().isValid(XXXX, locale));
134: assertFalse("isValid(B) pattern", BigIntegerValidator
135: .getInstance().isValid(XXXX, pattern));
136: assertFalse("isValid(B) both", BigIntegerValidator
137: .getInstance().isValid(patternVal, pattern,
138: Locale.GERMAN));
139: }
140:
141: /**
142: * Test BigInteger Range/Min/Max
143: */
144: public void testBigIntegerRangeMinMax() {
145: BigIntegerValidator validator = (BigIntegerValidator) strictValidator;
146: BigInteger number9 = validator.validate("9", "#");
147: BigInteger number10 = validator.validate("10", "#");
148: BigInteger number11 = validator.validate("11", "#");
149: BigInteger number19 = validator.validate("19", "#");
150: BigInteger number20 = validator.validate("20", "#");
151: BigInteger number21 = validator.validate("21", "#");
152:
153: // Test isInRange()
154: assertFalse("isInRange() < min", validator.isInRange(number9,
155: 10, 20));
156: assertTrue("isInRange() = min", validator.isInRange(number10,
157: 10, 20));
158: assertTrue("isInRange() in range", validator.isInRange(
159: number11, 10, 20));
160: assertTrue("isInRange() = max", validator.isInRange(number20,
161: 10, 20));
162: assertFalse("isInRange() > max", validator.isInRange(number21,
163: 10, 20));
164:
165: // Test minValue()
166: assertFalse("minValue() < min", validator.minValue(number9, 10));
167: assertTrue("minValue() = min", validator.minValue(number10, 10));
168: assertTrue("minValue() > min", validator.minValue(number11, 10));
169:
170: // Test minValue()
171: assertTrue("maxValue() < max", validator.maxValue(number19, 20));
172: assertTrue("maxValue() = max", validator.maxValue(number20, 20));
173: assertFalse("maxValue() > max", validator
174: .maxValue(number21, 20));
175: }
176: }
|