1   package org.weda.converter;
2   
3   import java.text.DecimalFormat;
4   import java.text.DecimalFormatSymbols;
5   import tim.test.LogableTestCase;
6   import org.weda.converter.impl.NumberConverter;
7   
8   /**
9    *
10   * @author tim
11   */
12  public class NumberConverterTest extends LogableTestCase{
13      
14      public NumberConverterTest(String name) {
15          super(name);
16      }
17      
18      public void test_convertToString() throws Exception {
19          checkConvertToString(new NumberConverter());
20      }
21      
22      public void test_convertToNumber_withoutPattern() throws Exception {
23          checkConvertToStringWithoutPattern(new NumberConverter());
24      }
25      
26      public void test_convertToNumber_withPattern() throws Exception {
27          checkConvertToStringWithPattern(new NumberConverter());
28      }
29      
30      public void checkConvertToString(ValueTypeConverter converter) 
31          throws Exception 
32      {
33          assertEquals("1", converter.convert(String.class, 1, null));
34          assertEquals("1.1", converter.convert(String.class, 1.1, null));
35          DecimalFormatSymbols syms = new DecimalFormatSymbols();
36          assertEquals("1"+syms.getDecimalSeparator()+"10"
37              , converter.convert(String.class, 1.1, "#.00"));
38          assertEquals("1"+syms.getDecimalSeparator()+"10"
39              , converter.convert(String.class, new Float(1.1), "#.00"));        
40      }
41      
42      public void checkConvertToStringWithoutPattern(ValueTypeConverter converter)
43          throws Exception 
44      {
45          assertEquals(1, converter.convert(Integer.class, "1", null));
46          assertEquals(new Byte((byte)1), converter.convert(Byte.class, "1", null));
47          assertEquals(new Short((short)1), converter.convert(Short.class, "1", null));
48          assertEquals(new Long(1), converter.convert(Long.class, "1", null));
49          //
50          assertEquals(1.1, converter.convert(Double.class, "1.1", null));
51          assertEquals(new Float(1.1), converter.convert(Float.class, "1.1", null));
52          assertEquals(new Double(1.1), converter.convert(Double.class, "1.1", null));
53          //assertEquals(new Double(1.1), converter.convert(Double.TYPE, "1.1", null));
54      }
55      
56      public void checkConvertToStringWithPattern(ValueTypeConverter converter)
57          throws Exception
58      {
59          assertEquals(new Integer(1), converter.convert(Integer.class, "1", "0"));
60          assertEquals(new Byte((byte)1), converter.convert(Byte.class, "1", "0"));
61          assertEquals(new Short((short)1), converter.convert(Short.class, "1", "0"));
62          assertEquals(new Long(1), converter.convert(Long.class, "1", "0"));
63          //
64          char sep=new DecimalFormatSymbols().getDecimalSeparator();
65          String val="1"+sep+"1";
66          assertEquals(1.1, converter.convert(Double.class, val, "0.0"));
67          assertEquals(new Float(1.1), converter.convert(Float.class, val, "0.0"));
68          assertEquals(new Double(1.1), converter.convert(Double.class, val, "0.0"));        
69      }
70      
71  }