11
22package cz .habarta .typescript .generator ;
33
4+ import com .fasterxml .jackson .core .JsonProcessingException ;
5+ import com .fasterxml .jackson .databind .ObjectMapper ;
6+ import com .fasterxml .jackson .databind .SerializationFeature ;
7+ //import java.time.*;
48import java .util .*;
5-
6- import org .joda .time .DateTime ;
79import org .junit .*;
810
911
1012public class DateTest {
1113
1214 @ Test
1315 public void testDate_forJavaUtilDate () {
14- final String dts = new TypeScriptGenerator (settings (DateMapping .asDate , "AsDate" ))
15- .generateTypeScript (Input .from (Dates .class ));
16+ final Settings settings = TestUtils .settings ();
17+ settings .mapDate = DateMapping .asDate ;
18+ final String dts = new TypeScriptGenerator (settings ).generateTypeScript (Input .from (Dates .class ));
1619 Assert .assertTrue (dts .contains ("date: Date;" ));
1720 Assert .assertTrue (dts .contains ("dateList: Date[];" ));
1821 Assert .assertTrue (dts .contains ("datesMap: { [index: string]: Date[] };" ));
@@ -21,8 +24,9 @@ public void testDate_forJavaUtilDate() {
2124
2225 @ Test
2326 public void testDate_forJodaDateTime () {
24- final String dts = new TypeScriptGenerator (settings (DateMapping .asDate , "AsDate" ))
25- .generateTypeScript (Input .from (JodaDates .class ));
27+ final Settings settings = TestUtils .settings ();
28+ settings .customTypeMappings .put ("org.joda.time.DateTime" , "Date" );
29+ final String dts = new TypeScriptGenerator (settings ).generateTypeScript (Input .from (JodaDates .class ));
2630 Assert .assertTrue (dts .contains ("date: Date;" ));
2731 Assert .assertTrue (dts .contains ("dateList: Date[];" ));
2832 Assert .assertTrue (dts .contains ("datesMap: { [index: string]: Date[] };" ));
@@ -31,8 +35,9 @@ public void testDate_forJodaDateTime() {
3135
3236 @ Test
3337 public void testDateAsNumber_forJavaUtilDate () {
34- final String dts = new TypeScriptGenerator (settings (DateMapping .asNumber , "AsNumber" ))
35- .generateTypeScript (Input .from (Dates .class ));
38+ final Settings settings = TestUtils .settings ();
39+ settings .mapDate = DateMapping .asNumber ;
40+ final String dts = new TypeScriptGenerator (settings ).generateTypeScript (Input .from (Dates .class ));
3641 Assert .assertTrue (dts .contains ("date: DateAsNumber;" ));
3742 Assert .assertTrue (dts .contains ("dateList: DateAsNumber[];" ));
3843 Assert .assertTrue (dts .contains ("datesMap: { [index: string]: DateAsNumber[] };" ));
@@ -42,19 +47,21 @@ public void testDateAsNumber_forJavaUtilDate() {
4247
4348 @ Test
4449 public void testDateAsNumber_forJodaDateTime () {
45- final String dts = new TypeScriptGenerator (settings (DateMapping .asNumber , "AsNumber" ))
46- .generateTypeScript (Input .from (JodaDates .class ));
47- Assert .assertTrue (dts .contains ("date: DateAsNumber;" ));
48- Assert .assertTrue (dts .contains ("dateList: DateAsNumber[];" ));
49- Assert .assertTrue (dts .contains ("datesMap: { [index: string]: DateAsNumber[] };" ));
50- Assert .assertTrue (dts .contains ("dates: DateAsNumber[];" ));
51- Assert .assertTrue (dts .contains ("type DateAsNumber = number;" ));
50+ final Settings settings = TestUtils .settings ();
51+ settings .customTypeMappings .put ("org.joda.time.DateTime" , "number" );
52+ final String dts = new TypeScriptGenerator (settings ).generateTypeScript (Input .from (JodaDates .class ));
53+ Assert .assertTrue (dts .contains ("date: number;" ));
54+ Assert .assertTrue (dts .contains ("dateList: number[];" ));
55+ Assert .assertTrue (dts .contains ("datesMap: { [index: string]: number[] };" ));
56+ Assert .assertTrue (dts .contains ("dates: number[];" ));
57+ Assert .assertTrue (!dts .contains ("type DateAsNumber = number;" ));
5258 }
5359
5460 @ Test
5561 public void testDateAsString_forJavaUtilDate () {
56- final String dts = new TypeScriptGenerator (settings (DateMapping .asString , "AsString" ))
57- .generateTypeScript (Input .from (Dates .class ));
62+ final Settings settings = TestUtils .settings ();
63+ settings .mapDate = DateMapping .asString ;
64+ final String dts = new TypeScriptGenerator (settings ).generateTypeScript (Input .from (Dates .class ));
5865 Assert .assertTrue (dts .contains ("date: DateAsString;" ));
5966 Assert .assertTrue (dts .contains ("dateList: DateAsString[];" ));
6067 Assert .assertTrue (dts .contains ("datesMap: { [index: string]: DateAsString[] };" ));
@@ -64,22 +71,46 @@ public void testDateAsString_forJavaUtilDate() {
6471
6572 @ Test
6673 public void testDateAsString_forJodaDateTime () {
67- final String dts = new TypeScriptGenerator (settings (DateMapping .asString , "AsString" ))
68- .generateTypeScript (Input .from (JodaDates .class ));
69- Assert .assertTrue (dts .contains ("date: DateAsString;" ));
70- Assert .assertTrue (dts .contains ("dateList: DateAsString[];" ));
71- Assert .assertTrue (dts .contains ("datesMap: { [index: string]: DateAsString[] };" ));
72- Assert .assertTrue (dts .contains ("dates: DateAsString[];" ));
73- Assert .assertTrue (dts .contains ("type DateAsString = string;" ));
74- }
75-
76- private static Settings settings (DateMapping mapDate , String namespace ) {
7774 final Settings settings = TestUtils .settings ();
78- settings .namespace = namespace ;
79- settings .mapDate = mapDate ;
80- return settings ;
75+ settings .customTypeMappings .put ("org.joda.time.DateTime" , "string" );
76+ final String dts = new TypeScriptGenerator (settings ).generateTypeScript (Input .from (JodaDates .class ));
77+ Assert .assertTrue (dts .contains ("date: string;" ));
78+ Assert .assertTrue (dts .contains ("dateList: string[];" ));
79+ Assert .assertTrue (dts .contains ("datesMap: { [index: string]: string[] };" ));
80+ Assert .assertTrue (dts .contains ("dates: string[];" ));
81+ Assert .assertTrue (!dts .contains ("type DateAsString = string;" ));
8182 }
8283
84+ // @Test
85+ // public void testDateAsString_forJava8DateTime() {
86+ // final Settings settings = TestUtils.settings();
87+ // settings.mapDate = DateMapping.asString;
88+ // final String dts = new TypeScriptGenerator(settings).generateTypeScript(Input.from(Java8Dates.class));
89+ // Assert.assertTrue(dts.contains("date: DateAsString;"));
90+ // Assert.assertTrue(dts.contains("dateList: DateAsString[];"));
91+ // Assert.assertTrue(dts.contains("datesMap: { [index: string]: DateAsString[] };"));
92+ // Assert.assertTrue(dts.contains("dates: DateAsString[];"));
93+ // Assert.assertTrue(dts.contains("type DateAsString = string;"));
94+ // }
95+
96+ // public static void main(String[] args) throws JsonProcessingException {
97+ // final ObjectMapper objectMapper = new ObjectMapper()
98+ // .findAndRegisterModules()
99+ // .configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
100+ // final Clock clock = Clock.fixed(Instant.parse("2017-09-02T19:11:00Z"), ZoneId.systemDefault());
101+ // System.out.println(objectMapper.writeValueAsString(new Date()));
102+ // System.out.println(objectMapper.writeValueAsString(Calendar.getInstance()));
103+ // System.out.println(objectMapper.writeValueAsString(Instant.now(clock)));
104+ // System.out.println(objectMapper.writeValueAsString(LocalDate.now(clock)));
105+ // System.out.println(objectMapper.writeValueAsString(LocalDateTime.now(clock)));
106+ // System.out.println(objectMapper.writeValueAsString(LocalTime.now(clock)));
107+ // System.out.println(objectMapper.writeValueAsString(OffsetDateTime.now(clock)));
108+ // System.out.println(objectMapper.writeValueAsString(OffsetTime.now(clock)));
109+ // System.out.println(objectMapper.writeValueAsString(Year.now(clock)));
110+ // System.out.println(objectMapper.writeValueAsString(YearMonth.now(clock)));
111+ // System.out.println(objectMapper.writeValueAsString(ZonedDateTime.now(clock)));
112+ // }
113+
83114}
84115
85116class Dates {
@@ -90,8 +121,15 @@ class Dates {
90121}
91122
92123class JodaDates {
93- public DateTime date ;
94- public List <DateTime > dateList ;
95- public Map <String , List <DateTime >> datesMap ;
96- public DateTime [] dates ;
124+ public org . joda . time . DateTime date ;
125+ public List <org . joda . time . DateTime > dateList ;
126+ public Map <String , List <org . joda . time . DateTime >> datesMap ;
127+ public org . joda . time . DateTime [] dates ;
97128}
129+
130+ //class Java8Dates {
131+ // public LocalDateTime date;
132+ // public List<LocalDateTime> dateList;
133+ // public Map<String, List<LocalDateTime>> datesMap;
134+ // public LocalDateTime[] dates;
135+ //}
0 commit comments