< prev index next >

test/java/time/tck/java/time/chrono/TCKIsoChronology.java

Print this page

        

*** 61,74 **** import java.time.DateTimeException; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; ! import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.chrono.Chronology; import java.time.chrono.IsoChronology; import java.time.format.ResolverStyle; import java.time.temporal.ChronoField; import java.time.temporal.TemporalAccessor; import java.time.temporal.TemporalAdjusters; import java.time.temporal.TemporalField; --- 61,80 ---- import java.time.DateTimeException; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; ! import java.time.OffsetDateTime; ! import java.time.Year; import java.time.ZonedDateTime; + import java.time.ZoneId; + import java.time.ZoneOffset; import java.time.chrono.Chronology; + import java.time.chrono.Era; + import java.time.chrono.HijrahEra; import java.time.chrono.IsoChronology; + import java.time.chrono.IsoEra; import java.time.format.ResolverStyle; import java.time.temporal.ChronoField; import java.time.temporal.TemporalAccessor; import java.time.temporal.TemporalAdjusters; import java.time.temporal.TemporalField;
*** 85,94 **** --- 91,102 ---- */ @Test public class TCKIsoChronology { // Can only work with IsoChronology here // others may be in separate module + private static final ZoneOffset OFFSET_P0100 = ZoneOffset.ofHours(1); + private static final ZoneOffset OFFSET_M0100 = ZoneOffset.ofHours(-1); @Test public void factory_from_TemporalAccessor_dateWithChronlogy() { assertEquals(Chronology.from(LocalDate.of(2012, 6, 30)), IsoChronology.INSTANCE); }
*** 673,683 **** // expected } } } //----------------------------------------------------------------------- private static LocalDate date(int y, int m, int d) { return LocalDate.of(y, m, d); } - } --- 681,786 ---- // expected } } } + @DataProvider(name = "epochSecond_dataProvider") + Object[][] data_epochSecond() { + return new Object[][] { + {2008, 3, 3, 1, 2, 2, OFFSET_P0100}, + {2008, 3, 3, 1, 2, 2, OFFSET_M0100}, + {2008, 2, 28, 1, 2, 2, OFFSET_P0100}, + {2009, 3, 3, 1, 2, 2, OFFSET_P0100}, + {2009, 3, 3, 1, 2, 2, OFFSET_M0100}, + {2009, 2, 28, 1, 2, 2, OFFSET_P0100}, + {1968, 3, 3, 1, 2, 2, OFFSET_P0100}, + {1968, 3, 3, 1, 2, 2, OFFSET_M0100}, + {1968, 2, 28, 1, 2, 2, OFFSET_P0100}, + {1969, 3, 3 , 1, 2, 2, OFFSET_P0100}, + {1969, 3, 3, 1, 2, 2, OFFSET_M0100}, + {1969, 2, 28, 1, 2, 2, OFFSET_P0100}, + {1970, 1, 1, 1, 2, 2, OFFSET_P0100}, + {1970, 1, 1, 1, 2, 2, OFFSET_M0100}, + {-4, 3, 3 , 1, 2, 2, OFFSET_P0100}, + {-1, 3, 3 , 1, 2, 2, OFFSET_P0100}, + }; + } + + @Test(dataProvider = "epochSecond_dataProvider") + public void test_epochSecond_1(int y, int m, int d, int h , int min, int s, ZoneOffset offset) { + assertEquals(IsoChronology.INSTANCE.epochSecond(y, m, d, h, min, s, offset), + OffsetDateTime.of(y, m, d, h, min, s, 0, offset).toEpochSecond()); + } + + @Test + public void test_epochSecond_2() { + assertEquals(IsoChronology.INSTANCE.epochSecond(2008, 3, 3, 1, 2, 2, OFFSET_P0100), + ZonedDateTime.of(2008, 3, 3, 1, 2, 2, 0, ZoneId.of("+01:00")).toEpochSecond()); + assertEquals(IsoChronology.INSTANCE.epochSecond(1969, 3, 3, 1, 2, 2, OFFSET_P0100), + ZonedDateTime.of(1969, 3, 3, 1, 2, 2, 0, ZoneId.of("+01:00")).toEpochSecond()); + } + + @Test + public void test_epochSecond_max() { + assertEquals(IsoChronology.INSTANCE.epochSecond(Year.MAX_VALUE, 12, 31, 23, 59, 59, ZoneOffset.MIN), + OffsetDateTime.of(Year.MAX_VALUE, 12, 31, 23, 59, 59, 0, ZoneOffset.MIN).toEpochSecond()); + } + + @Test + public void test_epochSecond_min() { + assertEquals(IsoChronology.INSTANCE.epochSecond(Year.MIN_VALUE, 1, 1, 0, 0, 0, ZoneOffset.MAX), + OffsetDateTime.of(Year.MIN_VALUE, 1, 1, 0, 0, 0, 0, ZoneOffset.MAX).toEpochSecond()); + } + + @Test(expectedExceptions=DateTimeException.class) + public void test_epochSecond_bad() { + IsoChronology.INSTANCE.epochSecond(2009, 2, 29, 1, 2, 2, OFFSET_P0100); + } + + @DataProvider(name = "era_epochSecond_dataProvider") + Object[][] data_era_epochSecond() { + return new Object[][] { + {IsoEra.CE, 2008, 3, 3, 1, 2, 2, OFFSET_P0100}, + {IsoEra.CE, 2008, 3, 3, 1, 2, 2, OFFSET_M0100}, + {IsoEra.CE, 2008, 2, 28, 1, 2, 2, OFFSET_P0100}, + {IsoEra.CE, 2009, 3, 3, 1, 2, 2, OFFSET_P0100}, + {IsoEra.CE, 2009, 3, 3, 1, 2, 2, OFFSET_M0100}, + {IsoEra.CE, 2009, 2, 28, 1, 2, 2, OFFSET_P0100}, + {IsoEra.CE, 1968, 3, 3, 1, 2, 2, OFFSET_P0100}, + {IsoEra.CE, 1968, 3, 3, 1, 2, 2, OFFSET_M0100}, + {IsoEra.CE, 1968, 2, 28, 1, 2, 2, OFFSET_P0100}, + {IsoEra.CE, 1969, 3, 3 , 1, 2, 2, OFFSET_P0100}, + {IsoEra.CE, 1969, 3, 3, 1, 2, 2, OFFSET_M0100}, + {IsoEra.CE, 1969, 2, 28, 1, 2, 2, OFFSET_P0100}, + {IsoEra.CE, 1970, 1, 1, 1, 2, 2, OFFSET_P0100}, + {IsoEra.CE, 1970, 1, 1, 1, 2, 2, OFFSET_M0100}, + {IsoEra.BCE, 5, 3, 3 , 1, 2, 2, OFFSET_P0100}, + {IsoEra.BCE, 2, 3, 3 , 1, 2, 2, OFFSET_P0100}, + }; + } + + @Test(dataProvider = "era_epochSecond_dataProvider") + public void test_era_epochSecond_1(Era era, int y, int m, int d, int h , int min, int s, ZoneOffset offset) { + assertEquals(IsoChronology.INSTANCE.epochSecond(era, y, m, d, h, min, s, offset), + OffsetDateTime.of(IsoChronology.INSTANCE.date(era, y, m, d), LocalTime.of(h, min, s), offset) + .toEpochSecond()); + } + + @Test + public void test_era_epochSecond_2() { + assertEquals(IsoChronology.INSTANCE.epochSecond(IsoEra.CE, 2008, 3, 3, 1, 2, 2, OFFSET_P0100), + ZonedDateTime.of(2008, 3, 3, 1, 2, 2, 0, ZoneId.of("+01:00")).toEpochSecond()); + assertEquals(IsoChronology.INSTANCE.epochSecond(IsoEra.CE, 1969, 3, 3, 1, 2, 2, OFFSET_P0100), + ZonedDateTime.of(1969, 3, 3, 1, 2, 2, 0, ZoneId.of("+01:00")).toEpochSecond()); + } + + @Test(expectedExceptions=DateTimeException.class) + public void test_era_epochSecond_bad() { + IsoChronology.INSTANCE.epochSecond(HijrahEra.AH, 2009, 2, 29, 1, 2, 2, OFFSET_P0100); + } + + //----------------------------------------------------------------------- private static LocalDate date(int y, int m, int d) { return LocalDate.of(y, m, d); } }
< prev index next >