001: /*
002: * Copyright 2004, 2005, 2006 Odysseus Software GmbH
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package de.odysseus.calyxo.forms.check;
017:
018: import java.math.BigDecimal;
019: import java.math.BigInteger;
020:
021: import junit.framework.TestCase;
022:
023: /**
024: * RangeChecker test case.
025: *
026: * @author Oliver Stuhr
027: */
028: public class RangeCheckerTest extends TestCase {
029:
030: /*
031: * Class under test for boolean check(Object)
032: */
033: public void testCheckObject() {
034: RangeChecker checker = new RangeChecker();
035: assertTrue(checker.check(null));
036: assertTrue(checker.check(new Byte(Byte.MIN_VALUE)));
037: assertTrue(checker.check(new Byte((byte) 0)));
038: assertTrue(checker.check(new Byte(Byte.MAX_VALUE)));
039: assertTrue(checker.check(new Short(Short.MIN_VALUE)));
040: assertTrue(checker.check(new Short((short) 0)));
041: assertTrue(checker.check(new Short(Short.MAX_VALUE)));
042: assertTrue(checker.check(new Integer(Integer.MIN_VALUE)));
043: assertTrue(checker.check(new Integer(0)));
044: assertTrue(checker.check(new Integer(Integer.MAX_VALUE)));
045: assertTrue(checker.check(new Long(Long.MIN_VALUE)));
046: assertTrue(checker.check(new Long(0)));
047: assertTrue(checker.check(new Long(Long.MAX_VALUE)));
048: assertFalse(checker.check(new Float(Float.NEGATIVE_INFINITY)));
049: assertTrue(checker.check(new Float(-Float.MAX_VALUE)));
050: assertTrue(checker.check(new Float(-Float.MIN_VALUE)));
051: assertTrue(checker.check(new Float(0)));
052: assertTrue(checker.check(new Float(Float.MIN_VALUE)));
053: assertTrue(checker.check(new Float(Float.MAX_VALUE)));
054: assertFalse(checker.check(new Float(Float.POSITIVE_INFINITY)));
055: assertFalse(checker.check(new Float(Float.NaN)));
056: assertFalse(checker.check(new Double(Double.NEGATIVE_INFINITY)));
057: assertTrue(checker.check(new Double(-Double.MAX_VALUE)));
058: assertTrue(checker.check(new Double(-Double.MIN_VALUE)));
059: assertTrue(checker.check(new Double(0)));
060: assertTrue(checker.check(new Double(Double.MIN_VALUE)));
061: assertTrue(checker.check(new Double(Double.MAX_VALUE)));
062: assertFalse(checker.check(new Double(Double.POSITIVE_INFINITY)));
063: assertFalse(checker.check(new Double(Double.NaN)));
064: assertTrue(checker.check(new BigInteger("10").pow(1000)
065: .negate()));
066: assertTrue(checker.check(new BigInteger("0")));
067: assertTrue(checker.check(new BigInteger("10").pow(1000)));
068: assertTrue(checker.check(new BigDecimal("-" + Double.MAX_VALUE)
069: .multiply(new BigDecimal("" + Double.MAX_VALUE))));
070: assertTrue(checker.check(new BigDecimal("0")));
071: assertTrue(checker.check(new BigDecimal("" + Double.MAX_VALUE)
072: .multiply(new BigDecimal("" + Double.MAX_VALUE))));
073:
074: checker.setAllowMin(true);
075: checker.setAllowMax(true);
076: assertTrue(checker.check(null));
077: assertTrue(checker.check(new Byte(Byte.MIN_VALUE)));
078: assertTrue(checker.check(new Byte((byte) 0)));
079: assertTrue(checker.check(new Byte(Byte.MAX_VALUE)));
080: assertTrue(checker.check(new Short(Short.MIN_VALUE)));
081: assertTrue(checker.check(new Short((short) 0)));
082: assertTrue(checker.check(new Short(Short.MAX_VALUE)));
083: assertTrue(checker.check(new Integer(Integer.MIN_VALUE)));
084: assertTrue(checker.check(new Integer(0)));
085: assertTrue(checker.check(new Integer(Integer.MAX_VALUE)));
086: assertTrue(checker.check(new Long(Long.MIN_VALUE)));
087: assertTrue(checker.check(new Long(0)));
088: assertTrue(checker.check(new Long(Long.MAX_VALUE)));
089: assertTrue(checker.check(new Float(Float.NEGATIVE_INFINITY)));
090: assertTrue(checker.check(new Float(-Float.MAX_VALUE)));
091: assertTrue(checker.check(new Float(-Float.MIN_VALUE)));
092: assertTrue(checker.check(new Float(0)));
093: assertTrue(checker.check(new Float(Float.MIN_VALUE)));
094: assertTrue(checker.check(new Float(Float.MAX_VALUE)));
095: assertTrue(checker.check(new Float(Float.POSITIVE_INFINITY)));
096: assertFalse(checker.check(new Float(Float.NaN)));
097: assertTrue(checker.check(new Double(Double.NEGATIVE_INFINITY)));
098: assertTrue(checker.check(new Double(-Double.MAX_VALUE)));
099: assertTrue(checker.check(new Double(-Double.MIN_VALUE)));
100: assertTrue(checker.check(new Double(0)));
101: assertTrue(checker.check(new Double(Double.MIN_VALUE)));
102: assertTrue(checker.check(new Double(Double.MAX_VALUE)));
103: assertTrue(checker.check(new Double(Double.POSITIVE_INFINITY)));
104: assertFalse(checker.check(new Double(Double.NaN)));
105: assertTrue(checker.check(new BigInteger("10").pow(1000)
106: .negate()));
107: assertTrue(checker.check(new BigInteger("0")));
108: assertTrue(checker.check(new BigInteger("10").pow(1000)));
109: assertTrue(checker.check(new BigDecimal("-" + Double.MAX_VALUE)
110: .multiply(new BigDecimal("" + Double.MAX_VALUE))));
111: assertTrue(checker.check(new BigDecimal("0")));
112: assertTrue(checker.check(new BigDecimal("" + Double.MAX_VALUE)
113: .multiply(new BigDecimal("" + Double.MAX_VALUE))));
114:
115: checker = new RangeChecker(-10, false, 10, true);
116: assertFalse(checker.check(new Double(Double.NEGATIVE_INFINITY)));
117: assertFalse(checker.check(new Double(-Double.MAX_VALUE)));
118: assertFalse(checker.check(new Double(-10)));
119: assertTrue(checker.check(new Double(-9.99)));
120: assertTrue(checker.check(new Double(-9)));
121: assertTrue(checker.check(new Double(-1)));
122: assertTrue(checker.check(new Double(-Double.MIN_VALUE)));
123: assertTrue(checker.check(new Double(0)));
124: assertTrue(checker.check(new Double(Double.MIN_VALUE)));
125: assertTrue(checker.check(new Double(1)));
126: assertTrue(checker.check(new Double(9)));
127: assertTrue(checker.check(new Double(10)));
128: assertFalse(checker.check(new Double(10.01)));
129: assertFalse(checker.check(new Double(11)));
130: assertFalse(checker.check(new Double(Double.MAX_VALUE)));
131: assertFalse(checker.check(new Double(Double.POSITIVE_INFINITY)));
132: assertFalse(checker.check(new Double(Double.NaN)));
133:
134: checker = new RangeChecker(0, true, 1, true);
135: assertFalse(checker.check(new Double(-0.01)));
136: assertTrue(checker.check(new Double(0)));
137: assertTrue(checker.check(new Double(0.01)));
138: assertTrue(checker.check(new Double(0.99)));
139: assertTrue(checker.check(new Double(1)));
140: assertFalse(checker.check(new Double(1.01)));
141:
142: checker = new RangeChecker(0, false, 1, true);
143: assertFalse(checker.check(new Double(-0.01)));
144: assertFalse(checker.check(new Double(0)));
145: assertTrue(checker.check(new Double(0.01)));
146: assertTrue(checker.check(new Double(0.99)));
147: assertTrue(checker.check(new Double(1)));
148: assertFalse(checker.check(new Double(1.01)));
149:
150: checker = new RangeChecker(0, true, 1, false);
151: assertFalse(checker.check(new Double(-0.01)));
152: assertTrue(checker.check(new Double(0)));
153: assertTrue(checker.check(new Double(0.01)));
154: assertTrue(checker.check(new Double(0.99)));
155: assertFalse(checker.check(new Double(1)));
156: assertFalse(checker.check(new Double(1.01)));
157:
158: checker = new RangeChecker(0, false, 1, false);
159: assertFalse(checker.check(new Double(-0.01)));
160: assertFalse(checker.check(new Double(0)));
161: assertTrue(checker.check(new Double(0.01)));
162: assertTrue(checker.check(new Double(0.99)));
163: assertFalse(checker.check(new Double(1)));
164: assertFalse(checker.check(new Double(1.01)));
165:
166: checker = new RangeChecker(1, true, 1, true);
167: assertFalse(checker.check(new Double(0.99)));
168: assertTrue(checker.check(new Double(1)));
169: assertFalse(checker.check(new Double(1.01)));
170:
171: checker = new RangeChecker(1, false, 1, true);
172: assertFalse(checker.check(new Double(0.99)));
173: assertFalse(checker.check(new Double(1)));
174: assertFalse(checker.check(new Double(1.01)));
175:
176: checker = new RangeChecker(1, true, 1, false);
177: assertFalse(checker.check(new Double(0.99)));
178: assertFalse(checker.check(new Double(1)));
179: assertFalse(checker.check(new Double(1.01)));
180:
181: checker = new RangeChecker(1, false, 1, false);
182: assertFalse(checker.check(new Double(0.99)));
183: assertFalse(checker.check(new Double(1)));
184: assertFalse(checker.check(new Double(1.01)));
185: }
186: }
|