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 LongValidator.
023: *
024: * @version $Revision: 478334 $ $Date: 2006-11-22 21:31:54 +0000 (Wed, 22 Nov 2006) $
025: */
026: public class LongValidatorTest extends BaseNumberValidatorTest {
027:
028: /**
029: * Main
030: * @param args arguments
031: */
032: public static void main(String[] args) {
033: junit.textui.TestRunner.run(LongValidatorTest.class);
034: }
035:
036: /**
037: * Constructor
038: * @param name test name
039: */
040: public LongValidatorTest(String name) {
041: super (name);
042: }
043:
044: protected void setUp() throws Exception {
045: super .setUp();
046:
047: validator = new LongValidator(false, 0);
048: strictValidator = new LongValidator();
049:
050: testPattern = "#,###";
051:
052: // testValidateMinMax()
053: max = null;
054: maxPlusOne = null;
055: min = null;
056: minMinusOne = null;
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 Long(1234);
067: testZero = new Long(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: /**
087: * Test LongValidator validate Methods
088: */
089: public void testLongValidatorMethods() {
090: Locale locale = Locale.GERMAN;
091: String pattern = "0,00,00";
092: String patternVal = "1,23,45";
093: String germanPatternVal = "1.23.45";
094: String localeVal = "12.345";
095: String defaultVal = "12,345";
096: String XXXX = "XXXX";
097: Long expected = new Long(12345);
098: assertEquals("validate(A) default", expected, LongValidator
099: .getInstance().validate(defaultVal));
100: assertEquals("validate(A) locale ", expected, LongValidator
101: .getInstance().validate(localeVal, locale));
102: assertEquals("validate(A) pattern", expected, LongValidator
103: .getInstance().validate(patternVal, pattern));
104: assertEquals("validate(A) both", expected, LongValidator
105: .getInstance().validate(germanPatternVal, pattern,
106: Locale.GERMAN));
107:
108: assertTrue("isValid(A) default", LongValidator.getInstance()
109: .isValid(defaultVal));
110: assertTrue("isValid(A) locale ", LongValidator.getInstance()
111: .isValid(localeVal, locale));
112: assertTrue("isValid(A) pattern", LongValidator.getInstance()
113: .isValid(patternVal, pattern));
114: assertTrue("isValid(A) both", LongValidator.getInstance()
115: .isValid(germanPatternVal, pattern, Locale.GERMAN));
116:
117: assertNull("validate(B) default", LongValidator.getInstance()
118: .validate(XXXX));
119: assertNull("validate(B) locale ", LongValidator.getInstance()
120: .validate(XXXX, locale));
121: assertNull("validate(B) pattern", LongValidator.getInstance()
122: .validate(XXXX, pattern));
123: assertNull("validate(B) both", LongValidator.getInstance()
124: .validate(patternVal, pattern, Locale.GERMAN));
125:
126: assertFalse("isValid(B) default", LongValidator.getInstance()
127: .isValid(XXXX));
128: assertFalse("isValid(B) locale ", LongValidator.getInstance()
129: .isValid(XXXX, locale));
130: assertFalse("isValid(B) pattern", LongValidator.getInstance()
131: .isValid(XXXX, pattern));
132: assertFalse("isValid(B) both", LongValidator.getInstance()
133: .isValid(patternVal, pattern, Locale.GERMAN));
134: }
135:
136: /**
137: * Test Long Range/Min/Max
138: */
139: public void testLongRangeMinMax() {
140: LongValidator validator = (LongValidator) strictValidator;
141: Long number9 = validator.validate("9", "#");
142: Long number10 = validator.validate("10", "#");
143: Long number11 = validator.validate("11", "#");
144: Long number19 = validator.validate("19", "#");
145: Long number20 = validator.validate("20", "#");
146: Long number21 = validator.validate("21", "#");
147:
148: // Test isInRange()
149: assertFalse("isInRange() < min", validator.isInRange(number9,
150: 10, 20));
151: assertTrue("isInRange() = min", validator.isInRange(number10,
152: 10, 20));
153: assertTrue("isInRange() in range", validator.isInRange(
154: number11, 10, 20));
155: assertTrue("isInRange() = max", validator.isInRange(number20,
156: 10, 20));
157: assertFalse("isInRange() > max", validator.isInRange(number21,
158: 10, 20));
159:
160: // Test minValue()
161: assertFalse("minValue() < min", validator.minValue(number9, 10));
162: assertTrue("minValue() = min", validator.minValue(number10, 10));
163: assertTrue("minValue() > min", validator.minValue(number11, 10));
164:
165: // Test minValue()
166: assertTrue("maxValue() < max", validator.maxValue(number19, 20));
167: assertTrue("maxValue() = max", validator.maxValue(number20, 20));
168: assertFalse("maxValue() > max", validator
169: .maxValue(number21, 20));
170: }
171: }
|