$days) { $index = ++$key; $monthKey = ($index < 10) ? '0' . $index : $index; $date = new \DateTimeImmutable(sprintf('2020-%s-25 13:00:00', $monthKey)); $month = new Month($date); self::assertEquals(sprintf('2020-%s-25', $monthKey), $month->getMonth()->format('Y-m-d')); self::assertCount($days, $month->getDays()); self::assertTrue($month->isLocked()); self::assertEquals(0, $month->getActualTime()); self::assertEquals(0, $month->getExpectedTime(new \DateTimeImmutable('2035-01-02'))); self::assertNull($month->getLockDate()); self::assertNull($month->getLockedBy()); foreach ($month->getDays() as $day) { self::assertInstanceOf(Day::class, $day); self::assertNull($day->getWorkingTime()); $duration = rand(0, 28000); $expected = rand(0, 28000); $workingTime = new WorkingTime(new User(), $day->getDay()); $workingTime->setExpectedTime($expected); $workingTime->setActualTime($duration); $day->setWorkingTime($workingTime); self::assertSame($workingTime, $day->getWorkingTime()); self::assertEquals($expected, $day->getWorkingTime()->getExpectedTime()); self::assertEquals($duration, $day->getWorkingTime()->getActualTime()); } } } }