1
2
3 package org.virtualmock.util;
4
5 import junit.framework.Test;
6 import junit.framework.TestCase;
7 import org.hansel.CoverageDecorator;
8 import org.virtualmock.matcher.ArgMatcher;
9 import org.virtualmock.matcher.EqualsMatcher;
10 import org.virtualmock.util.PrimitiveUtils;
11
12
13 /***
14 * Tests the EqualsMatcher class
15 *
16 * @author Chad Woolley
17 * @version $Revision: 1.1 $
18 */
19 public class PrimitiveUtilsTest extends TestCase {
20 ArgMatcher matcher = null;
21 PrimitiveUtils primitiveUtils = null;
22
23 /***
24 * Hansel support
25 *
26 * @return the decorated Test
27 */
28 public static Test suite() {
29 CoverageDecorator cd =
30 new CoverageDecorator(PrimitiveUtilsTest.class,
31 new Class[] {PrimitiveUtils.class});
32 cd.setDisplayStatistics(true);
33
34 return cd;
35 }
36
37 /***
38 * Set up the test
39 *
40 * @throws Exception any exception thrown during setup.
41 */
42 public void setUp() throws Exception {
43 super.setUp();
44 matcher = new EqualsMatcher();
45 primitiveUtils = new PrimitiveUtils();
46 }
47
48 /***
49 * Tear down the test
50 *
51 * @throws Exception any exception thrown during teardown.
52 */
53 public void tearDown() throws Exception {
54 super.tearDown();
55 }
56
57 /***
58 * Test for all primitive types
59 */
60 public void testReturnsCorrectValuesForAllPrimitiveTypes() {
61 assertEquals(new Integer(0),
62 primitiveUtils.getDefaultPrimitiveValue(int.class));
63 assertEquals(new Float(0.0f),
64 primitiveUtils.getDefaultPrimitiveValue(float.class));
65 assertEquals(new Double(0.0d),
66 primitiveUtils.getDefaultPrimitiveValue(double.class));
67
68 byte byteValue = 0;
69 assertEquals(new Byte(byteValue),
70 primitiveUtils.getDefaultPrimitiveValue(byte.class));
71 assertEquals(new Long(0L),
72 primitiveUtils.getDefaultPrimitiveValue(long.class));
73
74 short shortValue = 0;
75 assertEquals(new Short(shortValue),
76 primitiveUtils.getDefaultPrimitiveValue(short.class));
77 assertEquals(new Boolean(false),
78 primitiveUtils.getDefaultPrimitiveValue(boolean.class));
79 assertEquals(new Character('\u0000'),
80 primitiveUtils.getDefaultPrimitiveValue(char.class));
81 }
82
83 /***
84 * Tests that isAssignableToPrimitive returns false for a type which is not
85 * a primitive wrappers
86 */
87 public void testReturnsFalseFromIsAssignableToPrimitive() {
88 assertFalse(primitiveUtils.isAssignableToPrimitiveWrapper(Object.class));
89 }
90
91 /***
92 * Tests that the proper primitive types are returnes for all wrapper
93 * classes
94 */
95 public void testReturnsProperPrimitiveTypesForWrapperClasses() {
96 assertEquals(int.class,
97 primitiveUtils.getPrimitiveTypeForWrapperClass(Integer.class));
98
99 assertEquals(float.class,
100 primitiveUtils.getPrimitiveTypeForWrapperClass(Float.class));
101
102 assertEquals(double.class,
103 primitiveUtils.getPrimitiveTypeForWrapperClass(Double.class));
104
105 assertEquals(byte.class,
106 primitiveUtils.getPrimitiveTypeForWrapperClass(Byte.class));
107
108 assertEquals(long.class,
109 primitiveUtils.getPrimitiveTypeForWrapperClass(Long.class));
110
111 assertEquals(short.class,
112 primitiveUtils.getPrimitiveTypeForWrapperClass(Short.class));
113
114 assertEquals(boolean.class,
115 primitiveUtils.getPrimitiveTypeForWrapperClass(Boolean.class));
116
117 assertEquals(char.class,
118 primitiveUtils.getPrimitiveTypeForWrapperClass(Character.class));
119 }
120
121 /***
122 * Tests that isAssignableToPrimitive returns true for primitive wrapper
123 * types
124 */
125 public void testReturnsTrueFromIsAssignableToPrimitive() {
126 assertTrue(primitiveUtils.isAssignableToPrimitiveWrapper(Integer.class));
127
128 assertTrue(primitiveUtils.isAssignableToPrimitiveWrapper(Float.class));
129
130 assertTrue(primitiveUtils.isAssignableToPrimitiveWrapper(Double.class));
131
132 assertTrue(primitiveUtils.isAssignableToPrimitiveWrapper(Byte.class));
133
134 assertTrue(primitiveUtils.isAssignableToPrimitiveWrapper(Long.class));
135
136 assertTrue(primitiveUtils.isAssignableToPrimitiveWrapper(Short.class));
137
138 assertTrue(primitiveUtils.isAssignableToPrimitiveWrapper(Boolean.class));
139
140 assertTrue(primitiveUtils.isAssignableToPrimitiveWrapper(Character.class));
141 }
142
143 /***
144 * Test that an exception is thrown for non-primitive types
145 */
146 public void testThrowsExceptionForNonPrimitive() {
147 try {
148 primitiveUtils.getDefaultPrimitiveValue(Integer.class);
149 fail("expected exception");
150 } catch (IllegalArgumentException e) {
151 }
152 }
153
154 /***
155 * Test that an exception is thrown for non-primitive wrapper types
156 */
157 public void testThrowsExceptionForNonPrimitiveWrapper() {
158 try {
159 primitiveUtils.getPrimitiveTypeForWrapperClass(Object.class);
160 fail("expected exception");
161 } catch (IllegalArgumentException e) {
162 }
163 }
164 }