View Javadoc
1   /**
2    * 
3    */
4   package org.melati.admin.test;
5   
6   import java.lang.reflect.Method;
7   import java.math.BigDecimal;
8   
9   import org.melati.admin.PoemGvisType;
10  import org.melati.poem.PoemTypeFactory;
11  
12  import junit.framework.TestCase;
13  
14  /**
15   * @author timp
16   * @since 13 Nov 2012
17   *
18   */
19  public class PoemGvisTypeTest extends TestCase {
20  
21    public final void testPoemGvisType() {
22    }
23  
24    public final void testGvisType() {
25      assertEquals("\"fred\"", PoemGvisType.from(PoemTypeFactory.STRING.getCode()).jsonValue("fred"));
26      assertEquals("\"fred\"", PoemGvisType.from(-7).jsonValue("fred"));
27      assertEquals("1", PoemGvisType.from(PoemTypeFactory.INTEGER.getCode()).jsonValue(new Integer(1)));
28      assertEquals("1", PoemGvisType.from(-6).jsonValue(new Integer(1)));
29      
30      for (PoemGvisType type : PoemGvisType.values()) {
31        assertEquals(
32            PoemTypeFactory.forCode(null, type.getPoemType()).getDisplayName(), 
33            type.getPeomTypeFactory().getDisplayName());
34      }
35      assertEquals("1", PoemGvisType.from(-6).jsonValue(new Integer(1)));
36  
37      
38      assertEquals("number", PoemGvisType.TROID.gvisJsonTypeName());
39      assertEquals("boolean", PoemGvisType.DELETED.gvisJsonTypeName());
40    }
41  
42    public final void testTypeName() {
43      assertEquals("number", PoemGvisType.TROID.gvisJsonTypeName());
44      assertEquals("boolean", PoemGvisType.DELETED.gvisJsonTypeName());
45      assertEquals("number", PoemGvisType.TYPE.gvisJsonTypeName());
46      assertEquals("boolean", PoemGvisType.BOOLEAN.gvisJsonTypeName());
47      assertEquals("number", PoemGvisType.INTEGER.gvisJsonTypeName());
48      assertEquals("number", PoemGvisType.DOUBLE.gvisJsonTypeName());
49      assertEquals("number", PoemGvisType.LONG.gvisJsonTypeName());
50      assertEquals("number", PoemGvisType.BIGDECIMAL.gvisJsonTypeName());
51      assertEquals("string", PoemGvisType.STRING.gvisJsonTypeName());
52      assertEquals("string", PoemGvisType.PASSWORD.gvisJsonTypeName());
53      assertEquals("date", PoemGvisType.DATE.gvisJsonTypeName());
54      assertEquals("datetime", PoemGvisType.TIMESTAMP.gvisJsonTypeName());
55      assertEquals("timeofday", PoemGvisType.TIME.gvisJsonTypeName());
56      try { 
57        PoemGvisType.BINARY.gvisJsonTypeName();
58        fail("Should have bombed");
59      } catch (IllegalArgumentException e) { 
60        e = null;      
61      }
62      assertEquals("number", PoemGvisType.DISPLAYLEVEL.gvisJsonTypeName());
63      assertEquals("number", PoemGvisType.SEARCHABILITY.gvisJsonTypeName());
64      assertEquals("number", PoemGvisType.INTEGRITYFIX.gvisJsonTypeName());
65      
66    }
67  
68    public void testJsonValue() {
69      assertEquals("\"1\"", PoemGvisType.TROID.jsonValue(new Integer(1)));
70      assertEquals("1.0", PoemGvisType.DOUBLE.jsonValue(new Double(1)));
71      assertEquals("1", PoemGvisType.LONG.jsonValue(new Long(1)));
72      assertEquals("1", PoemGvisType.BIGDECIMAL.jsonValue(new BigDecimal(1)));
73      assertEquals("true", PoemGvisType.DELETED.jsonValue(true));
74  
75      for (PoemGvisType type : PoemGvisType.values()) {
76        assertEquals("null", type.jsonValue(null));
77      }
78    }
79    
80    public void testExcerciseHiddenGeneratedCode() { 
81      for (PoemGvisType type : PoemGvisType.values()) {
82        assertEquals("null", type.jsonValue(null));
83      }
84      for (PoemGvisType type : PoemGvisType.values()) {
85        assertEquals(type, PoemGvisType.valueOf(PoemGvisType.class, type.name()));
86      }
87      for (PoemGvisType type : PoemGvisType.values()) {
88        for (PoemGvisType type2 : PoemGvisType.values()) {
89          if (type.compareTo(type2) > 0)
90           assertTrue(type.ordinal() > type2.ordinal());
91        }
92      }
93      assertTrue(PoemGvisType.class.isEnum()); 
94  
95      for (Method m : PoemGvisType.class.getMethods()) {
96        System.out.println(m.toGenericString());
97      }
98    }
99  
100 }