DistrictTest.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 Illuminate\Database\Eloquent\Relations\HasMany;
  6. use Illuminate\Foundation\Testing\RefreshDatabase;
  7. use Tests\TestCase;
  8. class DistrictTest extends TestCase
  9. {
  10. use RefreshDatabase;
  11. protected $seed = true;
  12. public function test_can_create_district(): void
  13. {
  14. $district = District::factory()->create();
  15. $this->assertNotNull($district->id);
  16. $this->assertDatabaseHas('districts', ['id' => $district->id]);
  17. }
  18. public function test_has_many_areas(): void
  19. {
  20. $district = District::factory()->create();
  21. Area::factory()->for($district)->count(3)->create();
  22. $this->assertEquals(3, $district->areas()->count());
  23. }
  24. public function test_soft_deletes(): void
  25. {
  26. $district = District::factory()->create();
  27. $district->delete();
  28. $this->assertTrue($district->trashed());
  29. }
  30. public function test_fillable_fields(): void
  31. {
  32. $district = new District();
  33. $this->assertContains('name', $district->getFillable());
  34. $this->assertContains('shortname', $district->getFillable());
  35. }
  36. public function test_relations_exist(): void
  37. {
  38. $district = District::factory()->create();
  39. $this->assertInstanceOf(HasMany::class, $district->areas());
  40. }
  41. }