AreaTest.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace Tests\Unit\Models\Dictionary;
  3. use App\Models\Dictionary\Area;
  4. use App\Models\Dictionary\District;
  5. use App\Models\Responsible;
  6. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  7. use Illuminate\Foundation\Testing\RefreshDatabase;
  8. use Tests\TestCase;
  9. class AreaTest extends TestCase
  10. {
  11. use RefreshDatabase;
  12. protected $seed = true;
  13. public function test_can_create_area(): void
  14. {
  15. $area = Area::factory()->create();
  16. $this->assertNotNull($area->id);
  17. $this->assertDatabaseHas('areas', ['id' => $area->id]);
  18. }
  19. public function test_belongs_to_district(): void
  20. {
  21. $area = Area::factory()->create();
  22. $this->assertInstanceOf(District::class, $area->district);
  23. }
  24. public function test_soft_deletes(): void
  25. {
  26. $area = Area::factory()->create();
  27. $area->delete();
  28. $this->assertTrue($area->trashed());
  29. }
  30. public function test_fillable_fields(): void
  31. {
  32. $area = new Area();
  33. $this->assertContains('name', $area->getFillable());
  34. $this->assertContains('district_id', $area->getFillable());
  35. }
  36. public function test_relations_exist(): void
  37. {
  38. $area = Area::factory()->create();
  39. $this->assertInstanceOf(BelongsTo::class, $area->district());
  40. $this->assertInstanceOf(BelongsTo::class, $area->responsible());
  41. }
  42. }