1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.beanutils.converters;
19
20 import junit.framework.TestSuite;
21
22 import org.apache.commons.beanutils.Converter;
23
24
25 /***
26 * Test Case for the FloatConverter class.
27 *
28 * @author Rodney Waldhoff
29 * @version $Revision: 471348 $ $Date: 2006-11-05 02:59:26 +0000 (Sun, 05 Nov 2006) $
30 */
31
32 public class FloatConverterTestCase extends NumberConverterTestBase {
33
34 private Converter converter = null;
35
36
37
38 public FloatConverterTestCase(String name) {
39 super(name);
40 }
41
42
43
44 public void setUp() throws Exception {
45 converter = makeConverter();
46 numbers[0] = new Float("-12");
47 numbers[1] = new Float("13");
48 numbers[2] = new Float("-22");
49 numbers[3] = new Float("23");
50 }
51
52 public static TestSuite suite() {
53 return new TestSuite(FloatConverterTestCase.class);
54 }
55
56 public void tearDown() throws Exception {
57 converter = null;
58 }
59
60
61
62 protected NumberConverter makeConverter() {
63 return new FloatConverter();
64 }
65
66 protected NumberConverter makeConverter(Object defaultValue) {
67 return new FloatConverter(defaultValue);
68 }
69
70 protected Class getExpectedType() {
71 return Float.class;
72 }
73
74
75
76 public void testSimpleConversion() throws Exception {
77 String[] message= {
78 "from String",
79 "from String",
80 "from String",
81 "from String",
82 "from String",
83 "from String",
84 "from String",
85 "from Byte",
86 "from Short",
87 "from Integer",
88 "from Long",
89 "from Float",
90 "from Double"
91 };
92
93 Object[] input = {
94 String.valueOf(Float.MIN_VALUE),
95 "-17.2",
96 "-1.1",
97 "0.0",
98 "1.1",
99 "17.2",
100 String.valueOf(Float.MAX_VALUE),
101 new Byte((byte)7),
102 new Short((short)8),
103 new Integer(9),
104 new Long(10),
105 new Float(11.1),
106 new Double(12.2),
107 };
108
109 Float[] expected = {
110 new Float(Float.MIN_VALUE),
111 new Float(-17.2),
112 new Float(-1.1),
113 new Float(0.0),
114 new Float(1.1),
115 new Float(17.2),
116 new Float(Float.MAX_VALUE),
117 new Float(7),
118 new Float(8),
119 new Float(9),
120 new Float(10),
121 new Float(11.1),
122 new Float(12.2)
123 };
124
125 for(int i=0;i<expected.length;i++) {
126 assertEquals(
127 message[i] + " to Float",
128 expected[i].floatValue(),
129 ((Float)(converter.convert(Float.class,input[i]))).floatValue(),
130 0.00001);
131 assertEquals(
132 message[i] + " to float",
133 expected[i].floatValue(),
134 ((Float)(converter.convert(Float.TYPE,input[i]))).floatValue(),
135 0.00001);
136 assertEquals(
137 message[i] + " to null type",
138 expected[i].floatValue(),
139 ((Float)(converter.convert(null,input[i]))).floatValue(),
140 0.00001);
141 }
142 }
143
144
145 /***
146 * Test Invalid Amounts (too big/small)
147 */
148 public void testInvalidAmount() {
149 Converter converter = makeConverter();
150 Class clazz = Float.class;
151
152 Double max = new Double(Float.MAX_VALUE);
153 Double tooBig = new Double(Double.MAX_VALUE);
154
155
156 assertEquals("Maximum", new Float(Float.MAX_VALUE), converter.convert(clazz, max));
157
158
159 try {
160 assertEquals("Too Big", null, converter.convert(clazz, tooBig));
161 fail("More than maximum, expected ConversionException");
162 } catch (Exception e) {
163
164 }
165 }
166 }
167