001: /*
002: * Copyright 2005-2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.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.opensource.org/licenses/ecl1.php
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 org.kuali.core.util;
017:
018: import java.lang.reflect.Field;
019: import java.math.BigDecimal;
020: import java.math.BigInteger;
021:
022: import org.kuali.kfs.context.KualiTestBase;
023:
024: /**
025: * This class tests the TypeUtils methods.
026: */
027: public class TypeUtilsTest extends KualiTestBase {
028:
029: public final void testIsBooleanClass_nullClass() {
030: boolean failedAsExpected = false;
031:
032: try {
033: TypeUtils.isBooleanClass(null);
034: } catch (IllegalArgumentException e) {
035: failedAsExpected = true;
036: }
037:
038: assertTrue(failedAsExpected);
039: }
040:
041: public final void testIsBooleanClass_nonBooleanClass() {
042: TypeUtils.isBooleanClass(getFieldClass("string"));
043: }
044:
045: public final void testIsBooleanClass_BooleanClass() {
046: assertTrue(TypeUtils
047: .isBooleanClass(getFieldClass("booleanWrapper")));
048: }
049:
050: public final void testIsBooleanClass_booleanClass() {
051: assertTrue(TypeUtils
052: .isBooleanClass(getFieldClass("booleanPrimitive")));
053: }
054:
055: public final void testIsIntegralClass_nullClass() {
056: boolean failedAsExpected = false;
057:
058: try {
059: TypeUtils.isIntegralClass(null);
060: } catch (IllegalArgumentException e) {
061: failedAsExpected = true;
062: }
063:
064: assertTrue(failedAsExpected);
065: }
066:
067: public final void testIsIntegralClass_nonIntegralClass() {
068: assertFalse(TypeUtils.isIntegralClass(getFieldClass("string")));
069: }
070:
071: public final void testIsIntegralClass_ByteClass() {
072: assertTrue(TypeUtils
073: .isIntegralClass(getFieldClass("byteWrapper")));
074: }
075:
076: public final void testIsIntegralClass_byteClass() {
077: assertTrue(TypeUtils
078: .isIntegralClass(getFieldClass("bytePrimitive")));
079: }
080:
081: public final void testIsIntegralClass_ShortClass() {
082: assertTrue(TypeUtils
083: .isIntegralClass(getFieldClass("shortWrapper")));
084: }
085:
086: public final void testIsIntegralClass_shortClass() {
087: assertTrue(TypeUtils
088: .isIntegralClass(getFieldClass("shortPrimitive")));
089: }
090:
091: public final void testIsIntegralClass_IntegerClass() {
092: assertTrue(TypeUtils
093: .isIntegralClass(getFieldClass("integerWrapper")));
094:
095: }
096:
097: public final void testIsIntegralClass_integerClass() {
098: assertTrue(TypeUtils
099: .isIntegralClass(getFieldClass("integerPrimitive")));
100: }
101:
102: public final void testIsIntegralClass_LongClass() {
103: assertTrue(TypeUtils
104: .isIntegralClass(getFieldClass("longWrapper")));
105: }
106:
107: public final void testIsIntegralClass_longClass() {
108: assertTrue(TypeUtils
109: .isIntegralClass(getFieldClass("longPrimitive")));
110: }
111:
112: public final void testIsIntegralClass_BigIntegerClass() {
113: assertTrue(TypeUtils
114: .isIntegralClass(getFieldClass("bigInteger")));
115: }
116:
117: public final void testIsDecimalClass_nullClass() {
118: boolean failedAsExpected = false;
119:
120: try {
121: TypeUtils.isDecimalClass(null);
122: } catch (IllegalArgumentException e) {
123: failedAsExpected = true;
124: }
125:
126: assertTrue(failedAsExpected);
127: }
128:
129: public final void testIsDecimalClass_nonDecimalClass() {
130: assertFalse(TypeUtils.isDecimalClass(getFieldClass("string")));
131: }
132:
133: public final void testIsDecimalClass_FloatClass() {
134: assertTrue(TypeUtils
135: .isDecimalClass(getFieldClass("floatWrapper")));
136: }
137:
138: public final void testIsDecimalClass_floatClass() {
139: assertTrue(TypeUtils
140: .isDecimalClass(getFieldClass("floatPrimitive")));
141: }
142:
143: public final void testIsDecimalClass_DoubleClass() {
144: assertTrue(TypeUtils
145: .isDecimalClass(getFieldClass("doubleWrapper")));
146: }
147:
148: public final void testIsDecimalClass_doubleClass() {
149: assertTrue(TypeUtils
150: .isDecimalClass(getFieldClass("doublePrimitive")));
151: }
152:
153: public final void testIsDecimalClass_BigDecimalClass() {
154: assertTrue(TypeUtils
155: .isDecimalClass(getFieldClass("bigDecimal")));
156: }
157:
158: public final void testIsDecimalClass_KualiDecimalClass() {
159: assertTrue(TypeUtils
160: .isDecimalClass(getFieldClass("kualiDecimal")));
161: }
162:
163: public final void testIsTemporalClass_nullClass() {
164: boolean failedAsExpected = false;
165:
166: try {
167: TypeUtils.isTemporalClass(null);
168: } catch (IllegalArgumentException e) {
169: failedAsExpected = true;
170: }
171:
172: assertTrue(failedAsExpected);
173: }
174:
175: public final void testIsTemporalClass_nonTemporalClass() {
176: assertFalse(TypeUtils.isTemporalClass(getFieldClass("string")));
177: }
178:
179: public final void testIsTemporalClass_utilDateClass() {
180: assertTrue(TypeUtils.isTemporalClass(getFieldClass("utilDate")));
181: }
182:
183: public final void testIsTemporalClass_sqlDateClass() {
184: assertTrue(TypeUtils.isTemporalClass(getFieldClass("sqlDate")));
185: }
186:
187: public final void testIsTemporalClass_sqlTimestampClass() {
188: assertTrue(TypeUtils
189: .isTemporalClass(getFieldClass("sqlTimestamp")));
190: }
191:
192: /**
193: * @param fieldName
194: * @return Class of the named instance field of the given object
195: */
196: private Class getFieldClass(String fieldName) {
197: Class fieldClass = null;
198:
199: try {
200: Field field = TestClass.class.getField(fieldName);
201: fieldClass = field.getType();
202: } catch (NoSuchFieldException e) {
203: throw new RuntimeException(
204: "unable to retrieve fieldClass for field '"
205: + fieldName + "'");
206: }
207:
208: return fieldClass;
209: }
210:
211: /**
212: * Instance fields of every type I want to test with
213: */
214: private static class TestClass {
215: public String string;
216: public Boolean booleanWrapper;
217: public boolean booleanPrimitive;
218: public Byte byteWrapper;
219: public byte bytePrimitive;
220: public Short shortWrapper;
221: public short shortPrimitive;
222: public Integer integerWrapper;
223: public int integerPrimitive;
224: public Long longWrapper;
225: public long longPrimitive;
226: public BigInteger bigInteger;
227: public Float floatWrapper;
228: public float floatPrimitive;
229: public Double doubleWrapper;
230: public double doublePrimitive;
231: public BigDecimal bigDecimal;
232: public KualiDecimal kualiDecimal;
233: public java.util.Date utilDate;
234: public java.sql.Date sqlDate;
235: public java.sql.Timestamp sqlTimestamp;
236: }
237: }
|