109 return new Object[][] { 110 // Chronology, Locale, Chronology Name 111 { ISO8601, Locale.ENGLISH, "ISO" }, // No data in CLDR; Use Id. 112 { BUDDHIST, Locale.ENGLISH, "Buddhist Calendar" }, 113 { HIJRAH, Locale.ENGLISH, "Hijrah-umalqura" }, // No data in CLDR; Use Id. 114 { JAPANESE, Locale.ENGLISH, "Japanese Calendar" }, 115 { MINGUO, Locale.ENGLISH, "Minguo Calendar" }, 116 117 { ISO8601, Locale.JAPANESE, "ISO" }, // No data in CLDR; Use Id. 118 { JAPANESE, Locale.JAPANESE, "\u548c\u66a6" }, 119 { BUDDHIST, Locale.JAPANESE, "\u30bf\u30a4\u4ecf\u6559\u66a6" }, 120 121 { ISO8601, thTH, "ISO" }, // No data in CLDR; Use Id. 122 { JAPANESE, thTH, "\u0e1b\u0e0f\u0e34\u0e17\u0e34\u0e19\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19" }, 123 { BUDDHIST, thTH, "\u0e1b\u0e0f\u0e34\u0e17\u0e34\u0e19\u0e1e\u0e38\u0e17\u0e18" }, 124 }; 125 } 126 127 @Test(dataProvider="format_data") 128 public void test_formatLocalizedDate(Chronology chrono, Locale formatLocale, Locale numberingLocale, 129 ChronoLocalDate<?> date, String expected) { 130 DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) 131 .withChronology(chrono).withLocale(formatLocale) 132 .withDecimalStyle(DecimalStyle.of(numberingLocale)); 133 String text = dtf.format(date); 134 assertEquals(text, expected); 135 } 136 137 @Test(dataProvider="format_data") 138 public void test_parseLocalizedText(Chronology chrono, Locale formatLocale, Locale numberingLocale, 139 ChronoLocalDate<?> expected, String text) { 140 DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) 141 .withChronology(chrono).withLocale(formatLocale) 142 .withDecimalStyle(DecimalStyle.of(numberingLocale)); 143 TemporalAccessor temporal = dtf.parse(text); 144 ChronoLocalDate<?> date = chrono.date(temporal); 145 assertEquals(date, expected); 146 } 147 148 @Test(dataProvider="invalid_text", expectedExceptions=DateTimeParseException.class) 149 public void test_parseInvalidText(String text) { 150 DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) 151 .withChronology(JAPANESE).withLocale(Locale.JAPANESE); 152 dtf.parse(text); 153 } 154 155 @Test(dataProvider="chrono_names") 156 public void test_chronoNames(Chronology chrono, Locale locale, String expected) { 157 DateTimeFormatter dtf = new DateTimeFormatterBuilder().appendChronologyText(TextStyle.SHORT) 158 .toFormatter(locale); 159 String text = dtf.format(chrono.dateNow()); 160 assertEquals(text, expected); 161 TemporalAccessor ta = dtf.parse(text); 162 Chronology cal = ta.query(TemporalQuery.chronology()); 163 assertEquals(cal, chrono); 164 } | 109 return new Object[][] { 110 // Chronology, Locale, Chronology Name 111 { ISO8601, Locale.ENGLISH, "ISO" }, // No data in CLDR; Use Id. 112 { BUDDHIST, Locale.ENGLISH, "Buddhist Calendar" }, 113 { HIJRAH, Locale.ENGLISH, "Hijrah-umalqura" }, // No data in CLDR; Use Id. 114 { JAPANESE, Locale.ENGLISH, "Japanese Calendar" }, 115 { MINGUO, Locale.ENGLISH, "Minguo Calendar" }, 116 117 { ISO8601, Locale.JAPANESE, "ISO" }, // No data in CLDR; Use Id. 118 { JAPANESE, Locale.JAPANESE, "\u548c\u66a6" }, 119 { BUDDHIST, Locale.JAPANESE, "\u30bf\u30a4\u4ecf\u6559\u66a6" }, 120 121 { ISO8601, thTH, "ISO" }, // No data in CLDR; Use Id. 122 { JAPANESE, thTH, "\u0e1b\u0e0f\u0e34\u0e17\u0e34\u0e19\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19" }, 123 { BUDDHIST, thTH, "\u0e1b\u0e0f\u0e34\u0e17\u0e34\u0e19\u0e1e\u0e38\u0e17\u0e18" }, 124 }; 125 } 126 127 @Test(dataProvider="format_data") 128 public void test_formatLocalizedDate(Chronology chrono, Locale formatLocale, Locale numberingLocale, 129 ChronoLocalDate date, String expected) { 130 DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) 131 .withChronology(chrono).withLocale(formatLocale) 132 .withDecimalStyle(DecimalStyle.of(numberingLocale)); 133 String text = dtf.format(date); 134 assertEquals(text, expected); 135 } 136 137 @Test(dataProvider="format_data") 138 public void test_parseLocalizedText(Chronology chrono, Locale formatLocale, Locale numberingLocale, 139 ChronoLocalDate expected, String text) { 140 DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) 141 .withChronology(chrono).withLocale(formatLocale) 142 .withDecimalStyle(DecimalStyle.of(numberingLocale)); 143 TemporalAccessor temporal = dtf.parse(text); 144 ChronoLocalDate date = chrono.date(temporal); 145 assertEquals(date, expected); 146 } 147 148 @Test(dataProvider="invalid_text", expectedExceptions=DateTimeParseException.class) 149 public void test_parseInvalidText(String text) { 150 DateTimeFormatter dtf = DateTimeFormatter.ofLocalizedDate(FormatStyle.FULL) 151 .withChronology(JAPANESE).withLocale(Locale.JAPANESE); 152 dtf.parse(text); 153 } 154 155 @Test(dataProvider="chrono_names") 156 public void test_chronoNames(Chronology chrono, Locale locale, String expected) { 157 DateTimeFormatter dtf = new DateTimeFormatterBuilder().appendChronologyText(TextStyle.SHORT) 158 .toFormatter(locale); 159 String text = dtf.format(chrono.dateNow()); 160 assertEquals(text, expected); 161 TemporalAccessor ta = dtf.parse(text); 162 Chronology cal = ta.query(TemporalQuery.chronology()); 163 assertEquals(cal, chrono); 164 } |