Skip to content

Commit ecd23e2

Browse files
committed
Refactor java.sql type related tests under com.fasterxml.jackson.databind.ext
1 parent 81f2268 commit ecd23e2

File tree

4 files changed

+72
-42
lines changed

4 files changed

+72
-42
lines changed

src/test/java/com/fasterxml/jackson/databind/deser/jdk/DateDeserializationTest.java

Lines changed: 0 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -432,44 +432,6 @@ public void testDateUtilISO8601JustDate() throws Exception
432432
assertEquals(28, c.get(Calendar.DAY_OF_MONTH));
433433
}
434434

435-
@SuppressWarnings("deprecation")
436-
public void testDateSql() throws Exception
437-
{
438-
java.sql.Date value = new java.sql.Date(0L);
439-
value.setYear(99); // 1999
440-
value.setDate(19);
441-
value.setMonth(Calendar.APRIL);
442-
long now = value.getTime();
443-
444-
// First from long
445-
assertEquals(value, MAPPER.readValue(String.valueOf(now), java.sql.Date.class));
446-
447-
// then from default java.sql.Date String serialization:
448-
449-
java.sql.Date result = MAPPER.readValue(quote(value.toString()), java.sql.Date.class);
450-
Calendar c = gmtCalendar(result.getTime());
451-
assertEquals(1999, c.get(Calendar.YEAR));
452-
assertEquals(Calendar.APRIL, c.get(Calendar.MONTH));
453-
assertEquals(19, c.get(Calendar.DAY_OF_MONTH));
454-
455-
/* [JACKSON-200]: looks like we better add support for regular date
456-
* formats as well
457-
*/
458-
String expStr = "1981-07-13";
459-
result = MAPPER.readValue(quote(expStr), java.sql.Date.class);
460-
c.setTimeInMillis(result.getTime());
461-
assertEquals(1981, c.get(Calendar.YEAR));
462-
assertEquals(Calendar.JULY, c.get(Calendar.MONTH));
463-
assertEquals(13, c.get(Calendar.DAY_OF_MONTH));
464-
465-
/* 20-Nov-2009, tatus: I'll be damned if I understand why string serialization
466-
* is off-by-one, but day-of-month does seem to be one less. My guess is
467-
* that something is funky with timezones (i.e. somewhere local TZ is
468-
* being used), but just can't resolve it. Hence, need to comment this:
469-
*/
470-
// assertEquals(expStr, result.toString());
471-
}
472-
473435
public void testCalendar() throws Exception
474436
{
475437
// not ideal, to use (ever-changing) current date, but...
@@ -513,7 +475,6 @@ public void testDatesWithEmptyStrings() throws Exception
513475
{
514476
assertNull(MAPPER.readValue(quote(""), java.util.Date.class));
515477
assertNull(MAPPER.readValue(quote(""), java.util.Calendar.class));
516-
assertNull(MAPPER.readValue(quote(""), java.sql.Date.class));
517478
}
518479

519480
public void test8601DateTimeNoMilliSecs() throws Exception
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package com.fasterxml.jackson.databind.ext;
2+
3+
import java.util.Calendar;
4+
import java.util.TimeZone;
5+
6+
import com.fasterxml.jackson.databind.*;
7+
8+
public class SqlDateDeserializationTest
9+
extends BaseMapTest
10+
{
11+
/*
12+
/**********************************************************
13+
/* Unit tests
14+
/**********************************************************
15+
*/
16+
17+
private final ObjectMapper MAPPER = newJsonMapper();
18+
19+
@SuppressWarnings("deprecation")
20+
public void testDateSql() throws Exception
21+
{
22+
java.sql.Date value = new java.sql.Date(0L);
23+
value.setYear(99); // 1999
24+
value.setDate(19);
25+
value.setMonth(Calendar.APRIL);
26+
long now = value.getTime();
27+
28+
// First from long
29+
assertEquals(value, MAPPER.readValue(String.valueOf(now), java.sql.Date.class));
30+
31+
// then from default java.sql.Date String serialization:
32+
33+
java.sql.Date result = MAPPER.readValue(quote(value.toString()), java.sql.Date.class);
34+
Calendar c = gmtCalendar(result.getTime());
35+
assertEquals(1999, c.get(Calendar.YEAR));
36+
assertEquals(Calendar.APRIL, c.get(Calendar.MONTH));
37+
assertEquals(19, c.get(Calendar.DAY_OF_MONTH));
38+
39+
/* [JACKSON-200]: looks like we better add support for regular date
40+
* formats as well
41+
*/
42+
String expStr = "1981-07-13";
43+
result = MAPPER.readValue(quote(expStr), java.sql.Date.class);
44+
c.setTimeInMillis(result.getTime());
45+
assertEquals(1981, c.get(Calendar.YEAR));
46+
assertEquals(Calendar.JULY, c.get(Calendar.MONTH));
47+
assertEquals(13, c.get(Calendar.DAY_OF_MONTH));
48+
49+
/* 20-Nov-2009, tatus: I'll be damned if I understand why string serialization
50+
* is off-by-one, but day-of-month does seem to be one less. My guess is
51+
* that something is funky with timezones (i.e. somewhere local TZ is
52+
* being used), but just can't resolve it. Hence, need to comment this:
53+
*/
54+
// assertEquals(expStr, result.toString());
55+
}
56+
57+
public void testDatesWithEmptyStrings() throws Exception
58+
{
59+
assertNull(MAPPER.readValue(quote(""), java.sql.Date.class));
60+
}
61+
62+
private static Calendar gmtCalendar(long time)
63+
{
64+
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT"));
65+
c.setTimeInMillis(time);
66+
return c;
67+
}
68+
69+
}

src/test/java/com/fasterxml/jackson/databind/ser/jdk/SqlDateSerializationTest.java renamed to src/test/java/com/fasterxml/jackson/databind/ext/SqlDateSerializationTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.fasterxml.jackson.databind.ser.jdk;
1+
package com.fasterxml.jackson.databind.ext;
22

33
import java.io.IOException;
44
import java.util.Calendar;

src/test/java/com/fasterxml/jackson/databind/deser/jdk/TimestampDeserializationTest.java renamed to src/test/java/com/fasterxml/jackson/databind/ext/SqlTimestampDeserializationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package com.fasterxml.jackson.databind.deser.jdk;
1+
package com.fasterxml.jackson.databind.ext;
22

33
import java.text.DateFormat;
44
import java.text.SimpleDateFormat;
55

66
import com.fasterxml.jackson.databind.*;
77

8-
public class TimestampDeserializationTest
8+
public class SqlTimestampDeserializationTest
99
extends BaseMapTest
1010
{
1111
private final ObjectMapper MAPPER = newJsonMapper();

0 commit comments

Comments
 (0)