From 590b58afec8de4f6f29eb61e89e71b382f040aed Mon Sep 17 00:00:00 2001 From: Toon Verwerft Date: Mon, 10 Jun 2024 07:43:59 +0200 Subject: [PATCH] Fix mutation tests --- tests/unit/DateTime/DateTimeTest.php | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/tests/unit/DateTime/DateTimeTest.php b/tests/unit/DateTime/DateTimeTest.php index b400d543..4ea371bf 100644 --- a/tests/unit/DateTime/DateTimeTest.php +++ b/tests/unit/DateTime/DateTimeTest.php @@ -36,6 +36,21 @@ public function testTodayAt(): void static::assertSame(14, $today->getHours()); static::assertSame(0, $today->getMinutes()); static::assertSame(0, $today->getSeconds()); + static::assertSame(0, $today->getNanoseconds()); + } + + public function testTodayAtDefaults(): void + { + $now = DateTime::now(); + $today = DateTime::todayAt(14, 0); + + static::assertSame($now->getDate(), $today->getDate()); + static::assertNotSame($now->getTime(), $today->getTime()); + static::assertSame(14, $today->getHours()); + static::assertSame(0, $today->getMinutes()); + static::assertSame(0, $today->getSeconds()); + static::assertSame(0, $today->getNanoseconds()); + static::assertSame(Timezone::default(), $today->getTimezone()); } public function testFromParts(): void @@ -53,6 +68,21 @@ public function testFromParts(): void static::assertSame(1, $datetime->getNanoseconds()); } + public function testFromPartsWithDefaults(): void + { + $datetime = DateTime::fromParts(Timezone::UTC, 2024, Month::February, 4, ); + + static::assertSame(Timezone::UTC, $datetime->getTimezone()); + static::assertSame(2024, $datetime->getYear()); + static::assertSame(2, $datetime->getMonth()); + static::assertSame(4, $datetime->getDay()); + static::assertSame(Weekday::Sunday, $datetime->getWeekday()); + static::assertSame(0, $datetime->getHours()); + static::assertSame(0, $datetime->getMinutes()); + static::assertSame(0, $datetime->getSeconds()); + static::assertSame(0, $datetime->getNanoseconds()); + } + public function testFromPartsWithInvalidComponent(): void { $this->expectException(UnexpectedValueException::class); @@ -79,6 +109,19 @@ public function testParse(): void $parsed = DateTime::parse($string); static::assertEquals($datetime->getTimestamp(), $parsed->getTimestamp()); + static::assertSame($datetime->getTimezone(), $parsed->getTimezone()); + } + + public function testParseWithTimezone(): void + { + $datetime = DateTime::fromParts(Timezone::AmericaNewYork, 2024, Month::February, 4, 14, 0, 0, 0); + + $string = $datetime->format(); + $parsed = DateTime::parse($string, timezone: TimeZone::AmericaNewYork); + + static::assertEquals($datetime->getTimestamp(), $parsed->getTimestamp()); + static::assertSame($datetime->getTimezone(), $parsed->getTimezone()); + } public function testWithDate(): void @@ -363,4 +406,15 @@ public function testJsonSerialize(): void Json\encode($datetime), ); } + + public function testWithTime() + { + $date = DateTime::todayAt(14, 0); + $new = $date->withTime(15, 0); + + self::assertSame(15, $new->getHours()); + self::assertSame(0, $new->getMinutes()); + self::assertSame(0, $new->getSeconds()); + self::assertSame(0, $new->getNanoseconds()); + } }