$actualStartDate, 'endDate' => $actualEndDate] = $generator->generateRange($date); if (null === $startDate) { $this->assertNull($actualStartDate); $this->assertNull($actualEndDate); } else { $this->assertEquals($startDate->format(\DateTimeImmutable::ATOM), $actualStartDate->format(\DateTimeImmutable::ATOM)); $this->assertEquals($endDate->format(\DateTimeImmutable::ATOM), $actualEndDate->format(\DateTimeImmutable::ATOM)); } } /** * * Lundi => Envoi des rdv du mardi et mercredi. * * Mardi => Envoi des rdv du jeudi. * * Mercredi => Envoi des rdv du vendredi * * Jeudi => envoi des rdv du samedi et dimanche * * Vendredi => Envoi des rdv du lundi. */ public static function generateData(): \Iterator { yield [ new \DateTimeImmutable('2022-06-13 10:45:00'), new \DateTimeImmutable('2022-06-14 00:00:00'), new \DateTimeImmutable('2022-06-16 00:00:00'), ]; yield [ new \DateTimeImmutable('2022-06-14 15:45:00'), new \DateTimeImmutable('2022-06-16 00:00:00'), new \DateTimeImmutable('2022-06-17 00:00:00'), ]; yield [ new \DateTimeImmutable('2022-06-15 13:45:18'), new \DateTimeImmutable('2022-06-17 00:00:00'), new \DateTimeImmutable('2022-06-18 00:00:00'), ]; yield [ new \DateTimeImmutable('2022-06-16 01:30:55'), new \DateTimeImmutable('2022-06-18 00:00:00'), new \DateTimeImmutable('2022-06-20 00:00:00'), ]; yield [ new \DateTimeImmutable('2022-06-17 21:30:55'), new \DateTimeImmutable('2022-06-20 00:00:00'), new \DateTimeImmutable('2022-06-21 00:00:00'), ]; yield [ new \DateTimeImmutable('2022-06-18 21:30:55'), null, null, ]; yield [ new \DateTimeImmutable('2022-06-19 21:30:55'), null, null, ]; } }