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
16
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
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
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;
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;
91 }
92
93 }
94
95
96
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
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 }