'https://foo.bar/schedule.xml', 'name' => 'Testing', 'shift_type' => 1, 'needed_from_shift_type' => false, 'minutes_before' => 10, 'minutes_after' => 10, ]; /** * @covers \Engelsystem\Models\Shifts\Schedule::activeLocations */ public function testActiveLocations(): void { $schedule = new Schedule($this->data); $schedule->save(); $location = Location::factory()->create(); $schedule->activeLocations()->attach($location); $schedule = Schedule::find($schedule->id); $this->assertCount(1, $schedule->activeLocations); } /** * @covers \Engelsystem\Models\Shifts\Schedule::scheduleShifts */ public function testScheduleShifts(): void { $schedule = new Schedule($this->data); $schedule->save(); (new ScheduleShift(['shift_id' => 1, 'schedule_id' => $schedule->id, 'guid' => 'a']))->save(); (new ScheduleShift(['shift_id' => 2, 'schedule_id' => $schedule->id, 'guid' => 'b']))->save(); (new ScheduleShift(['shift_id' => 3, 'schedule_id' => $schedule->id, 'guid' => 'c']))->save(); $this->assertCount(3, $schedule->scheduleShifts); } /** * @covers \Engelsystem\Models\Shifts\Schedule::shifts */ public function testShifts(): void { $schedule = new Schedule($this->data); $schedule->save(); /** @var Collection|Shift[] $shifts */ $shifts = Shift::factory(3)->create(); (new ScheduleShift(['shift_id' => $shifts[0]->id, 'schedule_id' => $schedule->id, 'guid' => 'a']))->save(); (new ScheduleShift(['shift_id' => $shifts[1]->id, 'schedule_id' => $schedule->id, 'guid' => 'b']))->save(); (new ScheduleShift(['shift_id' => $shifts[2]->id, 'schedule_id' => $schedule->id, 'guid' => 'c']))->save(); $this->assertCount(3, $schedule->shifts); } /** * @covers \Engelsystem\Models\Shifts\Schedule::shiftType */ public function testShiftType(): void { $st = new ShiftType(['name' => 'Shift Type', 'description' => '']); $st->save(); $schedule = new Schedule($this->data); $schedule->shiftType()->associate($st); $schedule->save(); $this->assertEquals('Shift Type', Schedule::find(1)->shiftType->name); } }