/** * @dataProvider data_resolveFourToTime */ public function test_resolveFourToDateTime($style, $hour, $min, $sec, $nano, $expectedTime, $excessPeriod) { $f = (new DateTimeFormatterBuilder())->parseDefaulting(ChronoField::YEAR(), 2012)->parseDefaulting(ChronoField::MONTH_OF_YEAR(), 6)->parseDefaulting(ChronoField::DAY_OF_MONTH(), 30)->parseDefaulting(ChronoField::HOUR_OF_DAY(), $hour)->parseDefaulting(ChronoField::MINUTE_OF_HOUR(), $min)->parseDefaulting(ChronoField::SECOND_OF_MINUTE(), $sec)->parseDefaulting(ChronoField::NANO_OF_SECOND(), $nano)->toFormatter(); $styles = $style !== null ? [$style] : ResolverStyle::values(); if ($expectedTime !== null && $excessPeriod !== null) { $expectedDate = LocalDate::of(2012, 6, 30)->plusAmount($excessPeriod); foreach ($styles as $s) { $accessor = $f->withResolverStyle($s)->parse(""); $this->assertEquals($accessor->query(TemporalQueries::localDate()), $expectedDate, "ResolverStyle: " . $s); $this->assertEquals($accessor->query(TemporalQueries::localTime()), $expectedTime, "ResolverStyle: " . $s); $this->assertEquals($accessor->query(DateTimeFormatter::parsedExcessDays()), Period::ZERO(), "ResolverStyle: " . $s); } } }
public function test_parse_leapSecond() { $expected = OffsetDateTime::of(1970, 2, 3, 23, 59, 59, 123456789, ZoneOffset::UTC())->toInstant(); $f = (new DateTimeFormatterBuilder())->appendInstant4(-1)->toFormatter(); foreach (ResolverStyle::values() as $style) { $pared = $f->withResolverStyle($style)->parse("1970-02-03T23:59:60.123456789Z"); $this->assertEquals($pared->query(Instant::fromQuery()), $expected); $this->assertEquals($pared->query(DateTimeFormatter::parsedExcessDays()), Period::ZERO()); $this->assertEquals($pared->query(DateTimeFormatter::parsedLeapSecond()), true); } }
public function test_valueOf() { foreach (ResolverStyle::values() as $style) { $this->assertEquals(ResolverStyle::valueOf($style->name()), $style); } }