View Javadoc
1   /**
2    * 
3    */
4   package org.melati.poem.test;
5   
6   import java.sql.Date;
7   import java.sql.Types;
8   import java.text.DateFormat;
9   
10  import org.melati.poem.DatePoemType;
11  import org.melati.poem.SQLPoemType;
12  import org.melati.poem.PoemLocale;
13  
14  /**
15   * @author timp
16   * @since 21 Dec 2006
17   *
18   */
19  public class NotNullableDatePoemTypeTest extends SQLPoemTypeSpec<Date> {
20  
21    /**
22     * 
23     */
24    public NotNullableDatePoemTypeTest() {
25    }
26  
27    public NotNullableDatePoemTypeTest(String name) {
28      super(name);
29    }
30  
31    void setObjectUnderTest() {
32      it = new DatePoemType(false);
33    }
34  
35    /**
36     * Test full constructor.
37     */
38    public void testFullConstructor() {
39      DatePoemType it2 = new DatePoemType(Types.DATE, "DATETIME", it.getNullable());
40      assertNotNull(it.canRepresent(it2));
41      assertNotNull(it2.canRepresent(it2));
42    }
43    
44    /**
45     * Test method for {@link org.melati.poem.SQLType#quotedRaw(java.lang.Object)}.
46     */
47    public void testQuotedRaw() {
48      assertEquals(((SQLPoemType<Date>)it).sqlDefaultValue(getDb().getDbms()), 
49          ((SQLPoemType<Date>)it).quotedRaw(((SQLPoemType<Date>)it).rawOfString(
50                  ((SQLPoemType<Date>)it).sqlDefaultValue(getDb().getDbms()))));
51  
52    }
53  
54    public void testStringOfCooked() {
55      super.testStringOfCooked();
56      assertEquals("01-Jan-1970", it.stringOfCooked(new Date(1L), 
57          PoemLocale.HERE, DateFormat.MEDIUM));
58    }
59    public void testToDsdType() {
60  
61      DatePoemType t = new DatePoemType(true);
62  
63      assertTrue(t.toDsdType().equals("Date"));
64  
65    }
66  
67    public void testRawOfString() {
68  
69      DatePoemType t = new DatePoemType(true);
70      Date d1 = (Date) t.rawOfString("12122001");
71      Date d2 = (Date) t.rawOfString("2001-12-12");
72      assertTrue(d1.equals(d2));
73      assertTrue(!d1.equals(null));
74      assertTrue(!d2.equals(null));
75      Date d3 = (Date) t.rawOfString(null);
76      assertTrue(d3 == null);
77  
78      try {
79        t.rawOfString("");
80        fail("Should throw IllegalArgumentException for empty string");
81      } catch (IllegalArgumentException success) {
82        success = null; // shut PMD up
83      }
84  
85      try {
86  
87        t.rawOfString("1999-2-2");
88        fail("Should throw IllegalArgumentException for malformed date 1999-2-2");
89      } catch (IllegalArgumentException success) {
90        success = null; // shut PMD up
91      }
92  
93    }
94  
95    /**
96     * Test toString.
97     */
98    public void testToString() {
99  
100     DatePoemType t = new DatePoemType(true);
101     assertTrue(t.toString().equals("nullable DATE (org.melati.poem.DatePoemType)"));
102     DatePoemType t2 = new DatePoemType(false);
103     assertTrue(t2.toString().equals("DATE (org.melati.poem.DatePoemType)"));
104 
105   }
106 
107   /**
108    * Test equals.
109    */
110   public void testEquals() {
111 
112     DatePoemType t = new DatePoemType(true);
113     assertTrue(t.rawOfString("2001-12-12").equals(t.rawOfString("2001-12-12")));
114     assertTrue(t.rawOfString("12122001").equals(t.rawOfString("2001-12-12")));
115     assertTrue(t.rawOfString("12122001").equals(t.rawOfString("2001-12-12")));
116     assertTrue(t.rawOfString("02022001").equals(t.rawOfString("2001-02-02")));
117     assertTrue(t.rawOfString("02022001").equals(t.rawOfString("2001-02-02")));
118 
119   }
120 
121 }