package cz.habarta.typescript.generator; import java.util.*; import org.joda.time.DateTime; import org.junit.*; public class DateTest { @Test public void testDate_forJavaUtilDate() { final String dts = new TypeScriptGenerator(settings(DateMapping.asDate, "AsDate")) .generateTypeScript(Input.from(Dates.class)); Assert.assertTrue(dts.contains("date: Date;")); Assert.assertTrue(dts.contains("dateList: Date[];")); Assert.assertTrue(dts.contains("datesMap: { [index: string]: Date[] };")); Assert.assertTrue(dts.contains("dates: Date[];")); } @Test public void testDate_forJodaDateTime() { final String dts = new TypeScriptGenerator(settings(DateMapping.asDate, "AsDate")) .generateTypeScript(Input.from(JodaDates.class)); Assert.assertTrue(dts.contains("date: Date;")); Assert.assertTrue(dts.contains("dateList: Date[];")); Assert.assertTrue(dts.contains("datesMap: { [index: string]: Date[] };")); Assert.assertTrue(dts.contains("dates: Date[];")); } @Test public void testDateAsNumber_forJavaUtilDate() { final String dts = new TypeScriptGenerator(settings(DateMapping.asNumber, "AsNumber")) .generateTypeScript(Input.from(Dates.class)); Assert.assertTrue(dts.contains("date: DateAsNumber;")); Assert.assertTrue(dts.contains("dateList: DateAsNumber[];")); Assert.assertTrue(dts.contains("datesMap: { [index: string]: DateAsNumber[] };")); Assert.assertTrue(dts.contains("dates: DateAsNumber[];")); Assert.assertTrue(dts.contains("type DateAsNumber = number;")); } @Test public void testDateAsNumber_forJodaDateTime() { final String dts = new TypeScriptGenerator(settings(DateMapping.asNumber, "AsNumber")) .generateTypeScript(Input.from(JodaDates.class)); Assert.assertTrue(dts.contains("date: DateAsNumber;")); Assert.assertTrue(dts.contains("dateList: DateAsNumber[];")); Assert.assertTrue(dts.contains("datesMap: { [index: string]: DateAsNumber[] };")); Assert.assertTrue(dts.contains("dates: DateAsNumber[];")); Assert.assertTrue(dts.contains("type DateAsNumber = number;")); } @Test public void testDateAsString_forJavaUtilDate() { final String dts = new TypeScriptGenerator(settings(DateMapping.asString, "AsString")) .generateTypeScript(Input.from(Dates.class)); Assert.assertTrue(dts.contains("date: DateAsString;")); Assert.assertTrue(dts.contains("dateList: DateAsString[];")); Assert.assertTrue(dts.contains("datesMap: { [index: string]: DateAsString[] };")); Assert.assertTrue(dts.contains("dates: DateAsString[];")); Assert.assertTrue(dts.contains("type DateAsString = string;")); } @Test public void testDateAsString_forJodaDateTime() { final String dts = new TypeScriptGenerator(settings(DateMapping.asString, "AsString")) .generateTypeScript(Input.from(JodaDates.class)); Assert.assertTrue(dts.contains("date: DateAsString;")); Assert.assertTrue(dts.contains("dateList: DateAsString[];")); Assert.assertTrue(dts.contains("datesMap: { [index: string]: DateAsString[] };")); Assert.assertTrue(dts.contains("dates: DateAsString[];")); Assert.assertTrue(dts.contains("type DateAsString = string;")); } private static Settings settings(DateMapping mapDate, String namespace) { final Settings settings = TestUtils.settings(); settings.namespace = namespace; settings.mapDate = mapDate; return settings; } } class Dates { public Date date; public List<Date> dateList; public Map<String, List<Date>> datesMap; public Date[] dates; } class JodaDates { public DateTime date; public List<DateTime> dateList; public Map<String, List<DateTime>> datesMap; public DateTime[] dates; }