test/java/time/test/java/time/format/TestNonIsoFormatter.java

Print this page




 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     }