< prev index next >

test/jdk/java/time/test/java/time/format/TestDateTimeFormatterBuilderWithLocale.java

Print this page
rev 51829 : imported patch 8210633


  57  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  58  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  59  */
  60 
  61 /*
  62  * @test
  63  * @modules jdk.localedata
  64  */
  65 package test.java.time.format;
  66 
  67 import java.time.chrono.ChronoLocalDate;
  68 import java.time.chrono.Chronology;
  69 import java.time.chrono.IsoChronology;
  70 import java.time.chrono.JapaneseChronology;
  71 import java.time.chrono.JapaneseEra;
  72 import java.time.chrono.MinguoChronology;
  73 import java.time.chrono.ThaiBuddhistChronology;
  74 import java.time.format.DateTimeFormatter;
  75 import java.time.format.DateTimeFormatterBuilder;
  76 import java.time.format.FormatStyle;

  77 import java.time.LocalDate;
  78 import java.time.temporal.ChronoField;
  79 import java.time.temporal.Temporal;
  80 
  81 import java.util.HashMap;
  82 import java.util.Locale;
  83 import java.util.Map;
  84 
  85 import static org.testng.Assert.assertEquals;
  86 
  87 import org.testng.annotations.BeforeMethod;
  88 import org.testng.annotations.DataProvider;
  89 import org.testng.annotations.Test;
  90 
  91 /**
  92  * Test DateTimeFormatterBuilder.
  93  */
  94 @Test
  95 public class TestDateTimeFormatterBuilderWithLocale {
  96 


 117     public void test_appendPattern_patternPrint(String input, Temporal temporal, String expected) throws Exception {
 118         DateTimeFormatter f = builder.appendPattern(input).toFormatter(Locale.UK);
 119         String test = f.format(temporal);
 120         assertEquals(test, expected);
 121     }
 122 
 123     //-----------------------------------------------------------------------
 124     @DataProvider(name="mapTextLookup")
 125     Object[][] data_mapTextLookup() {
 126         return new Object[][] {
 127             {IsoChronology.INSTANCE.date(1, 1, 1), Locale.ENGLISH},
 128             {JapaneseChronology.INSTANCE.date(JapaneseEra.HEISEI, 1, 1, 8), Locale.ENGLISH},
 129             {MinguoChronology.INSTANCE.date(1, 1, 1), Locale.ENGLISH},
 130             {ThaiBuddhistChronology.INSTANCE.date(1, 1, 1), Locale.ENGLISH},
 131         };
 132     }
 133 
 134     @Test(dataProvider="mapTextLookup")
 135     public void test_appendText_mapTextLookup(ChronoLocalDate date, Locale locale) {
 136         final String new1st = "1st";

 137         Map<Long, String> yearMap = new HashMap<>();
 138         yearMap.put(1L, new1st);
 139         builder.appendText(ChronoField.YEAR_OF_ERA, yearMap);



 140 
 141         String actual = date.format(builder.toFormatter(locale));
 142         assertEquals(actual, new1st);
 143     }
 144 
 145 
 146     //-----------------------------------------------------------------------
 147     @DataProvider(name="localePatterns")
 148     Object[][] localizedDateTimePatterns() {
 149         return new Object[][] {
 150             // French Locale and ISO Chronology
 151             {FormatStyle.FULL, FormatStyle.FULL, IsoChronology.INSTANCE, Locale.FRENCH, "EEEE d MMMM y '\u00e0' HH:mm:ss zzzz"},
 152             {FormatStyle.LONG, FormatStyle.LONG, IsoChronology.INSTANCE, Locale.FRENCH, "d MMMM y '\u00e0' HH:mm:ss z"},
 153             {FormatStyle.MEDIUM, FormatStyle.MEDIUM, IsoChronology.INSTANCE, Locale.FRENCH, "d MMM y '\u00e0' HH:mm:ss"},
 154             {FormatStyle.SHORT, FormatStyle.SHORT, IsoChronology.INSTANCE, Locale.FRENCH, "dd/MM/y HH:mm"},
 155             {FormatStyle.FULL, null, IsoChronology.INSTANCE, Locale.FRENCH, "EEEE d MMMM y"},
 156             {FormatStyle.LONG, null, IsoChronology.INSTANCE, Locale.FRENCH, "d MMMM y"},
 157             {FormatStyle.MEDIUM, null, IsoChronology.INSTANCE, Locale.FRENCH, "d MMM y"},
 158             {FormatStyle.SHORT, null, IsoChronology.INSTANCE, Locale.FRENCH, "dd/MM/y"},
 159             {null, FormatStyle.FULL, IsoChronology.INSTANCE, Locale.FRENCH, "HH:mm:ss zzzz"},
 160             {null, FormatStyle.LONG, IsoChronology.INSTANCE, Locale.FRENCH, "HH:mm:ss z"},
 161             {null, FormatStyle.MEDIUM, IsoChronology.INSTANCE, Locale.FRENCH, "HH:mm:ss"},
 162             {null, FormatStyle.SHORT, IsoChronology.INSTANCE, Locale.FRENCH, "HH:mm"},




  57  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  58  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  59  */
  60 
  61 /*
  62  * @test
  63  * @modules jdk.localedata
  64  */
  65 package test.java.time.format;
  66 
  67 import java.time.chrono.ChronoLocalDate;
  68 import java.time.chrono.Chronology;
  69 import java.time.chrono.IsoChronology;
  70 import java.time.chrono.JapaneseChronology;
  71 import java.time.chrono.JapaneseEra;
  72 import java.time.chrono.MinguoChronology;
  73 import java.time.chrono.ThaiBuddhistChronology;
  74 import java.time.format.DateTimeFormatter;
  75 import java.time.format.DateTimeFormatterBuilder;
  76 import java.time.format.FormatStyle;
  77 import java.time.format.ResolverStyle;
  78 import java.time.LocalDate;
  79 import java.time.temporal.ChronoField;
  80 import java.time.temporal.Temporal;
  81 
  82 import java.util.HashMap;
  83 import java.util.Locale;
  84 import java.util.Map;
  85 
  86 import static org.testng.Assert.assertEquals;
  87 
  88 import org.testng.annotations.BeforeMethod;
  89 import org.testng.annotations.DataProvider;
  90 import org.testng.annotations.Test;
  91 
  92 /**
  93  * Test DateTimeFormatterBuilder.
  94  */
  95 @Test
  96 public class TestDateTimeFormatterBuilderWithLocale {
  97 


 118     public void test_appendPattern_patternPrint(String input, Temporal temporal, String expected) throws Exception {
 119         DateTimeFormatter f = builder.appendPattern(input).toFormatter(Locale.UK);
 120         String test = f.format(temporal);
 121         assertEquals(test, expected);
 122     }
 123 
 124     //-----------------------------------------------------------------------
 125     @DataProvider(name="mapTextLookup")
 126     Object[][] data_mapTextLookup() {
 127         return new Object[][] {
 128             {IsoChronology.INSTANCE.date(1, 1, 1), Locale.ENGLISH},
 129             {JapaneseChronology.INSTANCE.date(JapaneseEra.HEISEI, 1, 1, 8), Locale.ENGLISH},
 130             {MinguoChronology.INSTANCE.date(1, 1, 1), Locale.ENGLISH},
 131             {ThaiBuddhistChronology.INSTANCE.date(1, 1, 1), Locale.ENGLISH},
 132         };
 133     }
 134 
 135     @Test(dataProvider="mapTextLookup")
 136     public void test_appendText_mapTextLookup(ChronoLocalDate date, Locale locale) {
 137         final String new1st = "1st";
 138         final long firstYear = 1L;
 139         Map<Long, String> yearMap = new HashMap<>();
 140         yearMap.put(firstYear, new1st);
 141         builder.appendText(ChronoField.YEAR_OF_ERA, yearMap);
 142         DateTimeFormatter formatter = builder
 143             .toFormatter(locale)
 144             .withResolverStyle(ResolverStyle.STRICT);
 145 
 146         assertEquals(date.format(formatter), new1st);
 147         assertEquals(formatter.parse(new1st).getLong(ChronoField.YEAR_OF_ERA), firstYear);
 148     }
 149 
 150 
 151     //-----------------------------------------------------------------------
 152     @DataProvider(name="localePatterns")
 153     Object[][] localizedDateTimePatterns() {
 154         return new Object[][] {
 155             // French Locale and ISO Chronology
 156             {FormatStyle.FULL, FormatStyle.FULL, IsoChronology.INSTANCE, Locale.FRENCH, "EEEE d MMMM y '\u00e0' HH:mm:ss zzzz"},
 157             {FormatStyle.LONG, FormatStyle.LONG, IsoChronology.INSTANCE, Locale.FRENCH, "d MMMM y '\u00e0' HH:mm:ss z"},
 158             {FormatStyle.MEDIUM, FormatStyle.MEDIUM, IsoChronology.INSTANCE, Locale.FRENCH, "d MMM y '\u00e0' HH:mm:ss"},
 159             {FormatStyle.SHORT, FormatStyle.SHORT, IsoChronology.INSTANCE, Locale.FRENCH, "dd/MM/y HH:mm"},
 160             {FormatStyle.FULL, null, IsoChronology.INSTANCE, Locale.FRENCH, "EEEE d MMMM y"},
 161             {FormatStyle.LONG, null, IsoChronology.INSTANCE, Locale.FRENCH, "d MMMM y"},
 162             {FormatStyle.MEDIUM, null, IsoChronology.INSTANCE, Locale.FRENCH, "d MMM y"},
 163             {FormatStyle.SHORT, null, IsoChronology.INSTANCE, Locale.FRENCH, "dd/MM/y"},
 164             {null, FormatStyle.FULL, IsoChronology.INSTANCE, Locale.FRENCH, "HH:mm:ss zzzz"},
 165             {null, FormatStyle.LONG, IsoChronology.INSTANCE, Locale.FRENCH, "HH:mm:ss z"},
 166             {null, FormatStyle.MEDIUM, IsoChronology.INSTANCE, Locale.FRENCH, "HH:mm:ss"},
 167             {null, FormatStyle.SHORT, IsoChronology.INSTANCE, Locale.FRENCH, "HH:mm"},


< prev index next >