/** * DaysOfWeeks constructor. * @param Period $periode * @param GestyScheduler $scheduler */ public function __construct(Period $periode, GestyScheduler $scheduler) { $this->periode = $periode; foreach ($this->periode->getDayIterator() as $currentDay) { $d = new Day($currentDay); if (!$scheduler->isDayOff($currentDay, ActivityType::TAP)) { $this->list_jours_tap[$d->getWeekDay()][] = $currentDay->format('Y-m-d'); } if (!$scheduler->isDayOff($currentDay, ActivityType::GARDERIE_MORNING)) { $this->list_jours_garderie[$d->getWeekDay() . '-1'][] = $currentDay->format('Y-m-d'); } if (!$scheduler->isDayOff($currentDay, ActivityType::GARDERIE_EVENING)) { $this->list_jours_garderie[$d->getWeekDay() . '-2'][] = $currentDay->format('Y-m-d'); } } }
/** * @dataProvider provideDates * * @param $date * @param $activityType * @param $isDayOffExpected */ public function testShouldDatesAvailabilityBeCorrect($date, $activityType, $isDayAvailable) { $dateTime = new \DateTime($date); $strs = [ActivityType::CANTEEN => 'canteen', ActivityType::TAP => 'TAP', ActivityType::GARDERIE_MORNING => 'garderie morning', ActivityType::GARDERIE_EVENING => 'garderie evening']; $strAssert = $dateTime->format('D') . " " . $date . " for " . $strs[$activityType] . ($isDayAvailable ? " should be day available" : " should be day off"); $this->assertEquals($isDayAvailable, !self::$gestyScheduler->isDayOff($dateTime, $activityType), $strAssert); }