< prev index next >

test/jdk/java/time/tck/java/time/format/TCKInstantPrinterParser.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 73,82 **** --- 73,87 ---- import java.time.temporal.TemporalAccessor; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; + /* + * @test + * @bug 8166138 + */ + /** * Test DateTimeFormatterBuilder.appendInstant(). */ @Test public class TCKInstantPrinterParser {
*** 200,221 **** --- 205,242 ---- {0, 0, "1970-01-01T00:00:00Z"}, {0, 0, "1970-01-01T00:00:00.0Z"}, {0, 0, "1970-01-01T00:00:00.000Z"}, {0, 0, "1970-01-01T00:00:00.000000000Z"}, + {0, 0, "1970-01-01T00:00:00+00:00"}, + {0, 0, "1970-01-01T00:00:00+00:00"}, + {0, 0, "1970-01-01T00:00:00.0+00:00"}, + {0, 0, "1970-01-01T00:00:00.000+00:00"}, + {-1, 0, "1969-12-31T23:59:59Z"}, {1, 0, "1970-01-01T00:00:01Z"}, {60, 0, "1970-01-01T00:01:00Z"}, {3600, 0, "1970-01-01T01:00:00Z"}, {86400, 0, "1970-01-02T00:00:00Z"}, + {-1, 0, "1969-12-31T23:59:59+0000"}, + {1, 0, "1970-01-01T00:00:01+0000"}, + {60, 0, "1970-01-01T00:01:00+0000"}, + {3600, 0, "1970-01-01T01:00:00+0000"}, + {86400, 0, "1970-01-02T00:00:00+0000"}, + {182, 234000000, "1970-01-01T00:03:02.234Z"}, {182, 234000000, "1970-01-01T00:03:02.2340Z"}, {182, 234000000, "1970-01-01T00:03:02.23400Z"}, {182, 234000000, "1970-01-01T00:03:02.234000Z"}, {182, 234000000, "1970-01-01T00:03:02.234000000Z"}, + {182, 234000000, "1970-01-01T00:03:02.234+00"}, + {182, 234000000, "1970-01-01T00:03:02.2340+00"}, + {182, 234000000, "1970-01-01T00:03:02.23400+00"}, + {182, 234000000, "1970-01-01T00:03:02.234000+00"}, + {((23 * 60) + 59) * 60 + 59, 123456789, "1970-01-01T23:59:59.123456789Z"}, {Instant.MAX.getEpochSecond(), 999999999, "+1000000000-12-31T23:59:59.999999999Z"}, {Instant.MIN.getEpochSecond(), 0, "-1000000000-01-01T00:00:00.000000000Z"}, };
*** 246,255 **** --- 267,310 ---- // expected } } } + @DataProvider(name="parseDigitsWithOffsets") + Object[][] data_parse_ninedigits() { + return new Object[][] { + {0, 0, "1970-01-01T00:00:00.000000000+00:00"}, + {0, 0, "1970-01-01T00:00:00.000000000+0000"}, + {0, 0, "1970-01-01T00:00:00.000000000+00"}, + + {182, 234000000, "1970-01-01T00:03:02.234000000+00:00"}, + {182, 234000000, "1970-01-01T00:03:02.234000000+0000"}, + {182, 234000000, "1970-01-01T00:03:02.234000000+00"}, + + {((23 * 60) + 59) * 60 + 59, 123456789, "1970-01-01T23:59:59.123456789+00:00"}, + {((23 * 60) + 59) * 60 + 59, 123456789, "1970-01-01T23:59:59.123456789+0000"}, + {((23 * 60) + 59) * 60 + 59, 123456789, "1970-01-01T23:59:59.123456789+00"}, + + {Instant.MAX.getEpochSecond(), 999999999, "+1000000000-12-31T23:59:59.999999999+00:00"}, + {Instant.MAX.getEpochSecond(), 999999999, "+1000000000-12-31T23:59:59.999999999+0000"}, + {Instant.MAX.getEpochSecond(), 999999999, "+1000000000-12-31T23:59:59.999999999+00"}, + + {Instant.MIN.getEpochSecond(), 0, "-1000000000-01-01T00:00:00.000000000+00:00"}, + {Instant.MIN.getEpochSecond(), 0, "-1000000000-01-01T00:00:00.000000000+0000"}, + {Instant.MIN.getEpochSecond(), 0, "-1000000000-01-01T00:00:00.000000000+00"}, + }; + } + + @Test(dataProvider="parseDigitsWithOffsets") + public void test_parse_digitsNine_withOffset(long instantSecs, int nano, String input) { + DateTimeFormatter f = new DateTimeFormatterBuilder().appendInstant(9).toFormatter(); + Instant expected = Instant.ofEpochSecond(instantSecs, nano); + assertEquals(f.parse(input, Instant::from), expected); + assertEquals(f.parse(input).query(DateTimeFormatter.parsedExcessDays()), Period.ZERO); + assertEquals(f.parse(input).query(DateTimeFormatter.parsedLeapSecond()), Boolean.FALSE); + } + @Test public void test_parse_endOfDay() { Instant expected = OffsetDateTime.of(1970, 2, 4, 0, 0, 0, 0, ZoneOffset.UTC).toInstant(); DateTimeFormatter f = new DateTimeFormatterBuilder().appendInstant(-1).toFormatter(); for (ResolverStyle style : ResolverStyle.values()) {
*** 281,286 **** --- 336,349 ---- @Test(expectedExceptions=IllegalArgumentException.class) public void test_appendInstant_tooBig() { new DateTimeFormatterBuilder().appendInstant(10); } + //------------------------------------------------------------------------ + @Test + public void test_equality_withAndWithoutOffset() { + Instant instant1 = Instant.parse("2018-09-12T16:45:51+00:00"); + Instant instant2 = Instant.parse("2018-09-12T16:45:51Z"); + assertEquals(instant2, instant1); + } + }
< prev index next >