assertEquals('active', Reservation::STATUS_ACTIVE); $this->assertEquals('issued', Reservation::STATUS_ISSUED); $this->assertEquals('cancelled', Reservation::STATUS_CANCELLED); } public function test_is_active_returns_true_for_active(): void { $reservation = Reservation::factory()->active()->create(); $this->assertTrue($reservation->isActive()); } public function test_is_issued_returns_true_for_issued(): void { $reservation = Reservation::factory()->issued()->create(); $this->assertTrue($reservation->isIssued()); } public function test_is_cancelled_returns_true_for_cancelled(): void { $reservation = Reservation::factory()->cancelled()->create(); $this->assertTrue($reservation->isCancelled()); } public function test_scope_active_filters_correctly(): void { $sparePart = SparePart::factory()->create(); $order = SparePartOrder::factory()->inStock()->forSparePart($sparePart)->create(); Reservation::factory()->active()->forSparePart($sparePart)->fromOrder($order)->create(); Reservation::factory()->cancelled()->forSparePart($sparePart)->fromOrder($order)->create(); $activeCount = Reservation::active()->forSparePart($sparePart->id)->count(); $this->assertEquals(1, $activeCount); } public function test_scope_for_spare_part_filters_correctly(): void { $sparePart1 = SparePart::factory()->create(); $sparePart2 = SparePart::factory()->create(); $order1 = SparePartOrder::factory()->inStock()->forSparePart($sparePart1)->create(); $order2 = SparePartOrder::factory()->inStock()->forSparePart($sparePart2)->create(); Reservation::factory()->forSparePart($sparePart1)->fromOrder($order1)->count(2)->create(); Reservation::factory()->forSparePart($sparePart2)->fromOrder($order2)->create(); $count = Reservation::forSparePart($sparePart1->id)->count(); $this->assertEquals(2, $count); } public function test_scope_for_reclamation_filters_correctly(): void { $reclamation1 = Reclamation::factory()->create(); $reclamation2 = Reclamation::factory()->create(); Reservation::factory()->forReclamation($reclamation1)->count(3)->create(); Reservation::factory()->forReclamation($reclamation2)->create(); $count = Reservation::forReclamation($reclamation1->id)->count(); $this->assertEquals(3, $count); } public function test_relations_exist(): void { $reservation = Reservation::factory()->create(); $this->assertInstanceOf(BelongsTo::class, $reservation->sparePart()); $this->assertInstanceOf(BelongsTo::class, $reservation->sparePartOrder()); $this->assertInstanceOf(BelongsTo::class, $reservation->reclamation()); } }