Skip to content

Commit

Permalink
Fix mutation tests
Browse files Browse the repository at this point in the history
  • Loading branch information
veewee committed Aug 30, 2024
1 parent b899ad0 commit 590b58a
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions tests/unit/DateTime/DateTimeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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);
Expand All @@ -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
Expand Down Expand Up @@ -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());
}
}

0 comments on commit 590b58a

Please sign in to comment.