public function test_appendTextMapIncomplete() { $map = [1, "JNY"]; $this->builder->appendText3(ChronoField::MONTH_OF_YEAR(), $map); $f = $this->builder->toFormatter(); $dt = LocalDateTime::of(2010, 2, 1, 0, 0); $this->assertEquals($f->format($dt), "2"); }
public function test_parse_decoratedEmpty_lenient() { $this->builder->parseLenient()->padNext2(4, '-')->optionalStart()->appendValue(ChronoField::DAY_OF_MONTH())->optionalEnd(); $parsed = $this->builder->toFormatter()->parseUnresolved("----", $this->pos); $this->assertEquals($this->pos->getIndex(), 4); $this->assertEquals($this->pos->getErrorIndex(), -1); $this->assertNotNull($parsed); }
/** * @dataProvider data_print */ public function test_print_pattern_x_($offsetPattern, $noOffset, LocalDateTime $ldt, ZoneId $zone, $expected) { $pattern = null; $zero = null; if ($offsetPattern === "+HHmm" && $noOffset === "Z") { $pattern = "x"; $zero = "+00"; } else { if ($offsetPattern === "+HHMM" && $noOffset === "Z") { $pattern = "xx"; $zero = "+0000"; } else { if ($offsetPattern === "+HH:MM" && $noOffset === "Z") { $pattern = "xxx"; $zero = "+00:00"; } else { if ($offsetPattern === "+HHMMss" && $noOffset === "Z") { $pattern = "xxxx"; $zero = "+0000"; } else { if ($offsetPattern === "+HH:MM:ss" && $noOffset === "Z") { $pattern = "xxxxx"; $zero = "+00:00"; } } } } } if ($pattern != null) { $zdt = $ldt->atZone($zone); $this->builder->appendPattern($pattern); $output = $this->builder->toFormatter()->format($zdt); $this->assertEquals($output, $expected === "Z" ? $zero : $expected); } }
public function test_padOptional() { $this->builder->appendValue(ChronoField::MONTH_OF_YEAR())->appendLiteral(':')->padNext(5)->optionalStart()->appendValue(ChronoField::DAY_OF_MONTH())->optionalEnd()->appendLiteral(':')->appendValue(ChronoField::YEAR()); $this->assertEquals($this->builder->toFormatter()->format(LocalDate::of(2013, 2, 1)), "2: 1:2013"); $this->assertEquals($this->builder->toFormatter()->format(YearMonth::of(2013, 2)), "2: :2013"); }
/** * @dataProvider provider_printAdjacent */ public function test_printAdjacent($pattern, $text, $year, $month, $day) { $builder = new DateTimeFormatterBuilder(); $builder->appendPattern($pattern); $dtf = $builder->toFormatter(); $ld = LocalDate::of($year, $month, $day); $actual = $dtf->format($ld); $this->assertEquals($text, $actual, "formatter output: " . $dtf); }
/** * @dataProvider data_combine */ public function test_derive($field1, $value1, $field2, $value2, $field3, $value3, $field4, $value4, $query, $expectedVal) { $str = ""; $dtfb = new DateTimeFormatterBuilder(); $dtfb->appendValue($field1)->appendLiteral('-'); $str .= $value1 . "-"; if ($field2 != null) { $dtfb->appendValue($field2)->appendLiteral('-'); $str .= $value2 . "-"; } if ($field3 != null) { $dtfb->appendValue($field3)->appendLiteral('-'); $str .= $value3 . "-"; } if ($field4 != null) { $dtfb->appendValue($field4)->appendLiteral('-'); $str .= $value4 . "-"; } $parsed = $dtfb->toFormatter()->parse($str); if ($query == LocalDate::class) { if ($expectedVal != null) { $this->assertEquals($parsed->query(LocalDate::fromQuery()), $expectedVal); } else { try { $parsed->query(LocalDate::fromQuery()); $this->fail(); } catch (DateTimeException $ex) { // expected } } } else { throw new IllegalArgumentException(); } }
/** * @dataProvider data_parseSuccess */ public function test_parseSuccess_caseInsensitive($text, $expectedIndex, $expectedErrorIndex, $expected) { $this->builder->parseCaseInsensitive()->appendZoneId(); $lcText = strtolower($text); $parsed = $this->builder->toFormatter()->parseUnresolved($lcText, $this->pos); $this->assertEquals($this->pos->getErrorIndex(), $expectedErrorIndex, "Incorrect error index parsing: " . $lcText); $this->assertEquals($this->pos->getIndex(), $expectedIndex, "Incorrect index parsing: " . $lcText); if ($expected !== null) { $zid = $parsed->query(TemporalQueries::zoneId()); $this->assertEquals($parsed->query(TemporalQueries::zoneId()), $expected, "Incorrect zoneId parsing: " . $lcText); $this->assertEquals($parsed->query(TemporalQueries::offset()), null, "Incorrect offset parsing: " . $lcText); $this->assertEquals($parsed->query(TemporalQueries::zone()), $expected, "Incorrect zone parsing: " . $lcText); } else { $this->assertEquals($parsed, null); } }
/** * @dataProvider dataValid */ public function test_appendPattern_valid($input, $expected) { $this->builder->appendPattern($input); $f = $this->builder->toFormatter(); $this->assertEquals($f->__toString(), $expected); }