test/java/time/tck/java/time/TCKYearMonth.java

Print this page

        

*** 55,65 **** * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ! package tck.java.time.temporal; import static java.time.temporal.ChronoField.EPOCH_MONTH; import static java.time.temporal.ChronoField.ERA; import static java.time.temporal.ChronoField.MONTH_OF_YEAR; import static java.time.temporal.ChronoField.YEAR; --- 55,65 ---- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ ! package tck.java.time; import static java.time.temporal.ChronoField.EPOCH_MONTH; import static java.time.temporal.ChronoField.ERA; import static java.time.temporal.ChronoField.MONTH_OF_YEAR; import static java.time.temporal.ChronoField.YEAR;
*** 69,107 **** import static org.testng.Assert.fail; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; - import java.util.ArrayList; - import java.util.Arrays; - import java.util.HashSet; - import java.util.List; - import java.util.Set; - import java.time.Clock; import java.time.DateTimeException; 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.format.DateTimeFormatter; - import java.time.format.DateTimeFormatters; import java.time.format.DateTimeParseException; import java.time.temporal.ChronoField; import java.time.temporal.JulianFields; import java.time.temporal.TemporalAccessor; import java.time.temporal.TemporalField; ! import java.time.temporal.Year; ! import java.time.temporal.YearMonth; import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; - import tck.java.time.AbstractDateTimeTest; /** * Test YearMonth. */ @Test --- 69,108 ---- import static org.testng.Assert.fail; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.time.Clock; import java.time.DateTimeException; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.Month; + import java.time.Year; + import java.time.YearMonth; import java.time.ZoneId; import java.time.ZoneOffset; + 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.TemporalAccessor; import java.time.temporal.TemporalField; ! import java.time.temporal.TemporalQuery; ! import java.util.ArrayList; ! import java.util.Arrays; ! import java.util.HashSet; ! import java.util.List; ! import java.util.Set; import org.testng.annotations.BeforeMethod; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** * Test YearMonth. */ @Test
*** 151,161 **** @Test public void test_serialization_format() throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream dos = new DataOutputStream(baos) ) { ! dos.writeByte(5); dos.writeInt(2012); dos.writeByte(9); } byte[] bytes = baos.toByteArray(); assertSerializedBySer(YearMonth.of(2012, 9), bytes); --- 152,162 ---- @Test public void test_serialization_format() throws Exception { ByteArrayOutputStream baos = new ByteArrayOutputStream(); try (DataOutputStream dos = new DataOutputStream(baos) ) { ! dos.writeByte(12); // java.time.temporal.Ser.YEAR_MONTH_TYPE dos.writeInt(2012); dos.writeByte(9); } byte[] bytes = baos.toByteArray(); assertSerializedBySer(YearMonth.of(2012, 9), bytes);
*** 376,393 **** //----------------------------------------------------------------------- // parse(DateTimeFormatter) //----------------------------------------------------------------------- @Test(groups={"tck"}) public void factory_parse_formatter() { ! DateTimeFormatter f = DateTimeFormatters.pattern("y M"); YearMonth test = YearMonth.parse("2010 12", f); assertEquals(test, YearMonth.of(2010, 12)); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) public void factory_parse_formatter_nullText() { ! DateTimeFormatter f = DateTimeFormatters.pattern("y M"); YearMonth.parse((String) null, f); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) public void factory_parse_formatter_nullFormatter() { --- 377,394 ---- //----------------------------------------------------------------------- // parse(DateTimeFormatter) //----------------------------------------------------------------------- @Test(groups={"tck"}) public void factory_parse_formatter() { ! DateTimeFormatter f = DateTimeFormatter.ofPattern("y M"); YearMonth test = YearMonth.parse("2010 12", f); assertEquals(test, YearMonth.of(2010, 12)); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) public void factory_parse_formatter_nullText() { ! DateTimeFormatter f = DateTimeFormatter.ofPattern("y M"); YearMonth.parse((String) null, f); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) public void factory_parse_formatter_nullFormatter() {
*** 413,422 **** --- 414,454 ---- assertEquals(TEST_2008_06.getLong(ChronoField.ERA), 1); assertEquals(TEST_2008_06.getLong(ChronoField.EPOCH_MONTH), (2008 - 1970) * 12 + 6 - 1); } //----------------------------------------------------------------------- + // query(TemporalQuery) + //----------------------------------------------------------------------- + @DataProvider(name="query") + Object[][] data_query() { + return new Object[][] { + {TEST_2008_06, Queries.chronology(), IsoChronology.INSTANCE}, + {TEST_2008_06, Queries.zoneId(), null}, + {TEST_2008_06, Queries.precision(), ChronoUnit.MONTHS}, + {TEST_2008_06, Queries.zone(), null}, + {TEST_2008_06, Queries.offset(), null}, + {TEST_2008_06, Queries.localDate(), null}, + {TEST_2008_06, 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_2008_06.query(null); + } + + //----------------------------------------------------------------------- // get*() //----------------------------------------------------------------------- @DataProvider(name="sampleDates") Object[][] provider_sampleDates() { return new Object[][] {
*** 425,434 **** --- 457,474 ---- {-1, 3}, {0, 12}, }; } + @Test(dataProvider="sampleDates") + public void test_get(int y, int m) { + YearMonth a = YearMonth.of(y, m); + assertEquals(a.getYear(), y); + assertEquals(a.getMonth(), Month.of(m)); + assertEquals(a.getMonthValue(), m); + } + //----------------------------------------------------------------------- // with(Year) //----------------------------------------------------------------------- @Test(groups={"tck"}) public void test_with_Year() {
*** 868,887 **** } //----------------------------------------------------------------------- // atDay(int) //----------------------------------------------------------------------- ! @Test(groups={"tck"}) ! public void test_atDay_int() { ! YearMonth test = YearMonth.of(2008, 6); ! assertEquals(test.atDay(30), LocalDate.of(2008, 6, 30)); } ! @Test(expectedExceptions=DateTimeException.class, groups={"tck"}) ! public void test_atDay_int_invalidDay() { ! YearMonth test = YearMonth.of(2008, 6); ! test.atDay(31); } //----------------------------------------------------------------------- // compareTo() //----------------------------------------------------------------------- --- 908,977 ---- } //----------------------------------------------------------------------- // atDay(int) //----------------------------------------------------------------------- ! @DataProvider(name="atDay") ! Object[][] data_atDay() { ! return new Object[][] { ! {YearMonth.of(2008, 6), 8, LocalDate.of(2008, 6, 8)}, ! ! {YearMonth.of(2008, 1), 31, LocalDate.of(2008, 1, 31)}, ! {YearMonth.of(2008, 2), 29, LocalDate.of(2008, 2, 29)}, ! {YearMonth.of(2008, 3), 31, LocalDate.of(2008, 3, 31)}, ! {YearMonth.of(2008, 4), 30, LocalDate.of(2008, 4, 30)}, ! ! {YearMonth.of(2009, 1), 32, null}, ! {YearMonth.of(2009, 1), 0, null}, ! {YearMonth.of(2009, 2), 29, null}, ! {YearMonth.of(2009, 2), 30, null}, ! {YearMonth.of(2009, 2), 31, null}, ! {YearMonth.of(2009, 4), 31, null}, ! }; } ! @Test(dataProvider="atDay") ! public void test_atDay(YearMonth test, int day, LocalDate expected) { ! if (expected != null) { ! assertEquals(test.atDay(day), expected); ! } else { ! try { ! test.atDay(day); ! fail(); ! } catch (DateTimeException ex) { ! // expected ! } ! } ! } ! ! //----------------------------------------------------------------------- ! // atEndOfMonth() ! //----------------------------------------------------------------------- ! @DataProvider(name="atEndOfMonth") ! Object[][] data_atEndOfMonth() { ! return new Object[][] { ! {YearMonth.of(2008, 1), LocalDate.of(2008, 1, 31)}, ! {YearMonth.of(2008, 2), LocalDate.of(2008, 2, 29)}, ! {YearMonth.of(2008, 3), LocalDate.of(2008, 3, 31)}, ! {YearMonth.of(2008, 4), LocalDate.of(2008, 4, 30)}, ! {YearMonth.of(2008, 5), LocalDate.of(2008, 5, 31)}, ! {YearMonth.of(2008, 6), LocalDate.of(2008, 6, 30)}, ! {YearMonth.of(2008, 12), LocalDate.of(2008, 12, 31)}, ! ! {YearMonth.of(2009, 1), LocalDate.of(2009, 1, 31)}, ! {YearMonth.of(2009, 2), LocalDate.of(2009, 2, 28)}, ! {YearMonth.of(2009, 3), LocalDate.of(2009, 3, 31)}, ! {YearMonth.of(2009, 4), LocalDate.of(2009, 4, 30)}, ! {YearMonth.of(2009, 5), LocalDate.of(2009, 5, 31)}, ! {YearMonth.of(2009, 6), LocalDate.of(2009, 6, 30)}, ! {YearMonth.of(2009, 12), LocalDate.of(2009, 12, 31)}, ! }; ! } ! ! @Test(dataProvider="atEndOfMonth") ! public void test_atEndOfMonth(YearMonth test, LocalDate expected) { ! assertEquals(test.atEndOfMonth(), expected); } //----------------------------------------------------------------------- // compareTo() //-----------------------------------------------------------------------
*** 1031,1041 **** //----------------------------------------------------------------------- // toString(DateTimeFormatter) //----------------------------------------------------------------------- @Test(groups={"tck"}) public void test_toString_formatter() { ! DateTimeFormatter f = DateTimeFormatters.pattern("y M"); String t = YearMonth.of(2010, 12).toString(f); assertEquals(t, "2010 12"); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"}) --- 1121,1131 ---- //----------------------------------------------------------------------- // toString(DateTimeFormatter) //----------------------------------------------------------------------- @Test(groups={"tck"}) public void test_toString_formatter() { ! DateTimeFormatter f = DateTimeFormatter.ofPattern("y M"); String t = YearMonth.of(2010, 12).toString(f); assertEquals(t, "2010 12"); } @Test(expectedExceptions=NullPointerException.class, groups={"tck"})