test/java/time/tck/java/time/TCKLocalDate.java

Print this page

        

*** 78,118 **** import static org.testng.Assert.assertSame; import static org.testng.Assert.assertTrue; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; - import java.io.IOException; - import java.util.ArrayList; - import java.util.Arrays; - import java.util.List; - import java.time.Clock; import java.time.DateTimeException; import java.time.DayOfWeek; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Month; import java.time.ZoneId; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; - import java.time.format.DateTimeFormatters; import java.time.format.DateTimeParseException; import java.time.temporal.ChronoField; import java.time.temporal.ChronoUnit; - import java.time.temporal.ISOChrono; import java.time.temporal.JulianFields; - import java.time.temporal.OffsetDate; import java.time.temporal.Queries; import java.time.temporal.Temporal; import java.time.temporal.TemporalAccessor; import java.time.temporal.TemporalAdjuster; import java.time.temporal.TemporalField; import java.time.temporal.TemporalUnit; ! import java.time.temporal.Year; import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import test.java.time.MockSimplePeriod; --- 78,118 ---- import static org.testng.Assert.assertSame; import static org.testng.Assert.assertTrue; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.time.Clock; import java.time.DateTimeException; import java.time.DayOfWeek; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Month; + import java.time.OffsetDateTime; + import java.time.OffsetTime; + import java.time.Period; + import java.time.Year; import java.time.ZoneId; import java.time.ZoneOffset; import java.time.ZonedDateTime; + import java.time.chrono.IsoChronology; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeParseException; import java.time.temporal.ChronoField; import java.time.temporal.ChronoUnit; import java.time.temporal.JulianFields; import java.time.temporal.Queries; import java.time.temporal.Temporal; import java.time.temporal.TemporalAccessor; import java.time.temporal.TemporalAdjuster; import java.time.temporal.TemporalField; + import java.time.temporal.TemporalQuery; import java.time.temporal.TemporalUnit; ! import java.util.ArrayList; ! import java.util.Arrays; ! import java.util.List; import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; import test.java.time.MockSimplePeriod;
*** 593,610 **** //----------------------------------------------------------------------- // parse(DateTimeFormatter) //----------------------------------------------------------------------- @Test(groups={"tck"}) public void factory_parse_formatter() { ! DateTimeFormatter f = DateTimeFormatters.pattern("y M d"); LocalDate test = LocalDate.parse("2010 12 3", f); assertEquals(test, LocalDate.of(2010, 12, 3)); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) public void factory_parse_formatter_nullText() { ! DateTimeFormatter f = DateTimeFormatters.pattern("y M d"); LocalDate.parse((String) null, f); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) public void factory_parse_formatter_nullFormatter() { --- 593,610 ---- //----------------------------------------------------------------------- // parse(DateTimeFormatter) //----------------------------------------------------------------------- @Test(groups={"tck"}) public void factory_parse_formatter() { ! DateTimeFormatter f = DateTimeFormatter.ofPattern("y M d"); LocalDate test = LocalDate.parse("2010 12 3", f); assertEquals(test, LocalDate.of(2010, 12, 3)); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) public void factory_parse_formatter_nullText() { ! DateTimeFormatter f = DateTimeFormatter.ofPattern("y M d"); LocalDate.parse((String) null, f); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) public void factory_parse_formatter_nullFormatter() {
*** 635,672 **** } //----------------------------------------------------------------------- // query(TemporalQuery) //----------------------------------------------------------------------- ! @Test ! public void test_query_chrono() { ! assertEquals(TEST_2007_07_15.query(Queries.chrono()), ISOChrono.INSTANCE); ! assertEquals(Queries.chrono().queryFrom(TEST_2007_07_15), ISOChrono.INSTANCE); ! } ! ! @Test ! public void test_query_zoneId() { ! assertEquals(TEST_2007_07_15.query(Queries.zoneId()), null); ! assertEquals(Queries.zoneId().queryFrom(TEST_2007_07_15), null); ! } ! ! @Test ! public void test_query_precision() { ! assertEquals(TEST_2007_07_15.query(Queries.precision()), ChronoUnit.DAYS); ! assertEquals(Queries.precision().queryFrom(TEST_2007_07_15), ChronoUnit.DAYS); } ! @Test ! public void test_query_offset() { ! assertEquals(TEST_2007_07_15.query(Queries.offset()), null); ! assertEquals(Queries.offset().queryFrom(TEST_2007_07_15), null); } ! @Test ! public void test_query_zone() { ! assertEquals(TEST_2007_07_15.query(Queries.zone()), null); ! assertEquals(Queries.zone().queryFrom(TEST_2007_07_15), null); } @Test(expectedExceptions=NullPointerException.class) public void test_query_null() { TEST_2007_07_15.query(null); --- 635,665 ---- } //----------------------------------------------------------------------- // query(TemporalQuery) //----------------------------------------------------------------------- ! @DataProvider(name="query") ! Object[][] data_query() { ! return new Object[][] { ! {TEST_2007_07_15, Queries.chronology(), IsoChronology.INSTANCE}, ! {TEST_2007_07_15, Queries.zoneId(), null}, ! {TEST_2007_07_15, Queries.precision(), ChronoUnit.DAYS}, ! {TEST_2007_07_15, Queries.zone(), null}, ! {TEST_2007_07_15, Queries.offset(), null}, ! {TEST_2007_07_15, Queries.localDate(), TEST_2007_07_15}, ! {TEST_2007_07_15, Queries.localTime(), null}, ! }; } ! @Test(dataProvider="query") ! public <T> void test_query(TemporalAccessor temporal, TemporalQuery<T> query, T expected) { ! assertEquals(temporal.query(query), expected); } ! @Test(dataProvider="query") ! public <T> void test_queryFrom(TemporalAccessor temporal, TemporalQuery<T> query, T expected) { ! assertEquals(query.queryFrom(temporal), expected); } @Test(expectedExceptions=NullPointerException.class) public void test_query_null() { TEST_2007_07_15.query(null);
*** 1627,1636 **** --- 1620,1740 ---- public void test_minusDays_overflowTooSmall() { LocalDate.of(Year.MIN_VALUE, 1, 1).minusDays(Long.MAX_VALUE); } //----------------------------------------------------------------------- + // periodUntil(ChronoLocalDate) + //----------------------------------------------------------------------- + @DataProvider(name="periodUntil") + Object[][] data_periodUntil() { + return new Object[][] { + {2010, 1, 1, 2010, 1, 1, 0, 0, 0}, + {2010, 1, 1, 2010, 1, 2, 0, 0, 1}, + {2010, 1, 1, 2010, 1, 31, 0, 0, 30}, + {2010, 1, 1, 2010, 2, 1, 0, 1, 0}, + {2010, 1, 1, 2010, 2, 28, 0, 1, 27}, + {2010, 1, 1, 2010, 3, 1, 0, 2, 0}, + {2010, 1, 1, 2010, 12, 31, 0, 11, 30}, + {2010, 1, 1, 2011, 1, 1, 1, 0, 0}, + {2010, 1, 1, 2011, 12, 31, 1, 11, 30}, + {2010, 1, 1, 2012, 1, 1, 2, 0, 0}, + + {2010, 1, 10, 2010, 1, 1, 0, 0, -9}, + {2010, 1, 10, 2010, 1, 2, 0, 0, -8}, + {2010, 1, 10, 2010, 1, 9, 0, 0, -1}, + {2010, 1, 10, 2010, 1, 10, 0, 0, 0}, + {2010, 1, 10, 2010, 1, 11, 0, 0, 1}, + {2010, 1, 10, 2010, 1, 31, 0, 0, 21}, + {2010, 1, 10, 2010, 2, 1, 0, 0, 22}, + {2010, 1, 10, 2010, 2, 9, 0, 0, 30}, + {2010, 1, 10, 2010, 2, 10, 0, 1, 0}, + {2010, 1, 10, 2010, 2, 28, 0, 1, 18}, + {2010, 1, 10, 2010, 3, 1, 0, 1, 19}, + {2010, 1, 10, 2010, 3, 9, 0, 1, 27}, + {2010, 1, 10, 2010, 3, 10, 0, 2, 0}, + {2010, 1, 10, 2010, 12, 31, 0, 11, 21}, + {2010, 1, 10, 2011, 1, 1, 0, 11, 22}, + {2010, 1, 10, 2011, 1, 9, 0, 11, 30}, + {2010, 1, 10, 2011, 1, 10, 1, 0, 0}, + + {2010, 3, 30, 2011, 5, 1, 1, 1, 1}, + {2010, 4, 30, 2011, 5, 1, 1, 0, 1}, + + {2010, 2, 28, 2012, 2, 27, 1, 11, 30}, + {2010, 2, 28, 2012, 2, 28, 2, 0, 0}, + {2010, 2, 28, 2012, 2, 29, 2, 0, 1}, + + {2012, 2, 28, 2014, 2, 27, 1, 11, 30}, + {2012, 2, 28, 2014, 2, 28, 2, 0, 0}, + {2012, 2, 28, 2014, 3, 1, 2, 0, 1}, + + {2012, 2, 29, 2014, 2, 28, 1, 11, 30}, + {2012, 2, 29, 2014, 3, 1, 2, 0, 1}, + {2012, 2, 29, 2014, 3, 2, 2, 0, 2}, + + {2012, 2, 29, 2016, 2, 28, 3, 11, 30}, + {2012, 2, 29, 2016, 2, 29, 4, 0, 0}, + {2012, 2, 29, 2016, 3, 1, 4, 0, 1}, + + {2010, 1, 1, 2009, 12, 31, 0, 0, -1}, + {2010, 1, 1, 2009, 12, 30, 0, 0, -2}, + {2010, 1, 1, 2009, 12, 2, 0, 0, -30}, + {2010, 1, 1, 2009, 12, 1, 0, -1, 0}, + {2010, 1, 1, 2009, 11, 30, 0, -1, -1}, + {2010, 1, 1, 2009, 11, 2, 0, -1, -29}, + {2010, 1, 1, 2009, 11, 1, 0, -2, 0}, + {2010, 1, 1, 2009, 1, 2, 0, -11, -30}, + {2010, 1, 1, 2009, 1, 1, -1, 0, 0}, + + {2010, 1, 15, 2010, 1, 15, 0, 0, 0}, + {2010, 1, 15, 2010, 1, 14, 0, 0, -1}, + {2010, 1, 15, 2010, 1, 1, 0, 0, -14}, + {2010, 1, 15, 2009, 12, 31, 0, 0, -15}, + {2010, 1, 15, 2009, 12, 16, 0, 0, -30}, + {2010, 1, 15, 2009, 12, 15, 0, -1, 0}, + {2010, 1, 15, 2009, 12, 14, 0, -1, -1}, + + {2010, 2, 28, 2009, 3, 1, 0, -11, -27}, + {2010, 2, 28, 2009, 2, 28, -1, 0, 0}, + {2010, 2, 28, 2009, 2, 27, -1, 0, -1}, + + {2010, 2, 28, 2008, 2, 29, -1, -11, -28}, + {2010, 2, 28, 2008, 2, 28, -2, 0, 0}, + {2010, 2, 28, 2008, 2, 27, -2, 0, -1}, + + {2012, 2, 29, 2009, 3, 1, -2, -11, -28}, + {2012, 2, 29, 2009, 2, 28, -3, 0, -1}, + {2012, 2, 29, 2009, 2, 27, -3, 0, -2}, + + {2012, 2, 29, 2008, 3, 1, -3, -11, -28}, + {2012, 2, 29, 2008, 2, 29, -4, 0, 0}, + {2012, 2, 29, 2008, 2, 28, -4, 0, -1}, + }; + } + + @Test(dataProvider="periodUntil") + public void test_periodUntil_LocalDate(int y1, int m1, int d1, int y2, int m2, int d2, int ye, int me, int de) { + LocalDate start = LocalDate.of(y1, m1, d1); + LocalDate end = LocalDate.of(y2, m2, d2); + Period test = start.periodUntil(end); + assertEquals(test.getYears(), ye); + assertEquals(test.getMonths(), me); + assertEquals(test.getDays(), de); + } + + @Test + public void test_periodUntil_LocalDate_max() { + int years = Math.toIntExact((long) Year.MAX_VALUE - (long) Year.MIN_VALUE); + assertEquals(LocalDate.MIN.periodUntil(LocalDate.MAX), Period.of(years, 11, 30)); + } + + @Test(expectedExceptions=NullPointerException.class) + public void test_periodUntil_LocalDate_null() { + TEST_2007_07_15.periodUntil(null); + } + + //----------------------------------------------------------------------- // atTime() //----------------------------------------------------------------------- @Test(groups={"tck"}) public void test_atTime_LocalTime() { LocalDate t = LocalDate.of(2008, 6, 30);
*** 1769,1811 **** LocalDate t = LocalDate.of(2008, 6, 30); t.atTime(11, 30, 40, 1000000000); } //----------------------------------------------------------------------- - // atOffset() - //----------------------------------------------------------------------- @Test(groups={"tck"}) ! public void test_atOffset() { LocalDate t = LocalDate.of(2008, 6, 30); ! assertEquals(t.atOffset(OFFSET_PTWO), OffsetDate.of(LocalDate.of(2008, 6, 30), OFFSET_PTWO)); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) ! public void test_atOffset_nullZoneOffset() { LocalDate t = LocalDate.of(2008, 6, 30); ! t.atOffset((ZoneOffset) null); } //----------------------------------------------------------------------- // atStartOfDay() //----------------------------------------------------------------------- ! @Test(groups={"tck"}) ! public void test_atStartOfDay() { ! LocalDate t = LocalDate.of(2008, 6, 30); ! assertEquals(t.atStartOfDay(ZONE_PARIS), ! ZonedDateTime.of(LocalDateTime.of(2008, 6, 30, 0, 0), ZONE_PARIS)); } ! @Test(groups={"tck"}) ! public void test_atStartOfDay_dstGap() { ! LocalDate t = LocalDate.of(2007, 4, 1); ! assertEquals(t.atStartOfDay(ZONE_GAZA), ! ZonedDateTime.of(LocalDateTime.of(2007, 4, 1, 1, 0), ZONE_GAZA)); } ! @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) ! public void test_atStartOfDay_nullTimeZone() { LocalDate t = LocalDate.of(2008, 6, 30); t.atStartOfDay((ZoneId) null); } //----------------------------------------------------------------------- --- 1873,1929 ---- LocalDate t = LocalDate.of(2008, 6, 30); t.atTime(11, 30, 40, 1000000000); } //----------------------------------------------------------------------- @Test(groups={"tck"}) ! public void test_atTime_OffsetTime() { LocalDate t = LocalDate.of(2008, 6, 30); ! assertEquals(t.atTime(OffsetTime.of(11, 30, 0, 0, OFFSET_PONE)), OffsetDateTime.of(2008, 6, 30, 11, 30, 0, 0, OFFSET_PONE)); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) ! public void test_atTime_OffsetTime_null() { LocalDate t = LocalDate.of(2008, 6, 30); ! t.atTime((OffsetTime) null); } //----------------------------------------------------------------------- // atStartOfDay() //----------------------------------------------------------------------- ! @DataProvider(name="atStartOfDay") ! Object[][] data_atStartOfDay() { ! return new Object[][] { ! {LocalDate.of(2008, 6, 30), LocalDateTime.of(2008, 6, 30, 0, 0)}, ! {LocalDate.of(-12, 6, 30), LocalDateTime.of(-12, 6, 30, 0, 0)}, ! }; } ! @Test(dataProvider="atStartOfDay") ! public void test_atStartOfDay(LocalDate test, LocalDateTime expected) { ! assertEquals(test.atStartOfDay(), expected); } ! //----------------------------------------------------------------------- ! // atStartOfDay(ZoneId) ! //----------------------------------------------------------------------- ! @DataProvider(name="atStartOfDayZoneId") ! Object[][] data_atStartOfDayZoneId() { ! return new Object[][] { ! {LocalDate.of(2008, 6, 30), ZONE_PARIS, ZonedDateTime.of(LocalDateTime.of(2008, 6, 30, 0, 0), ZONE_PARIS)}, ! {LocalDate.of(2008, 6, 30), OFFSET_PONE, ZonedDateTime.of(LocalDateTime.of(2008, 6, 30, 0, 0), OFFSET_PONE)}, ! {LocalDate.of(2007, 4, 1), ZONE_GAZA, ZonedDateTime.of(LocalDateTime.of(2007, 4, 1, 1, 0), ZONE_GAZA)}, ! }; ! } ! ! @Test(dataProvider="atStartOfDayZoneId") ! public void test_atStartOfDay_ZoneId(LocalDate test, ZoneId zone, ZonedDateTime expected) { ! assertEquals(test.atStartOfDay(zone), expected); ! } ! ! @Test(expectedExceptions=NullPointerException.class) ! public void test_atStartOfDay_ZoneId_null() { LocalDate t = LocalDate.of(2008, 6, 30); t.atStartOfDay((ZoneId) null); } //-----------------------------------------------------------------------
*** 2003,2013 **** //----------------------------------------------------------------------- // toString(DateTimeFormatter) //----------------------------------------------------------------------- @Test(groups={"tck"}) public void test_toString_formatter() { ! DateTimeFormatter f = DateTimeFormatters.pattern("y M d"); String t = LocalDate.of(2010, 12, 3).toString(f); assertEquals(t, "2010 12 3"); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) --- 2121,2131 ---- //----------------------------------------------------------------------- // toString(DateTimeFormatter) //----------------------------------------------------------------------- @Test(groups={"tck"}) public void test_toString_formatter() { ! DateTimeFormatter f = DateTimeFormatter.ofPattern("y M d"); String t = LocalDate.of(2010, 12, 3).toString(f); assertEquals(t, "2010 12 3"); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"})