RequirementGroupTest.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace Tests\Feature\API;
  3. use App\Models\RequirementGroup;
  4. use Tests\Feature\TestCase;
  5. class RequirementGroupTest extends TestCase
  6. {
  7. public function test_requirement_group_list()
  8. {
  9. RequirementGroup::factory(30)->create();
  10. $response = $this->get(route('requirement-group.index'));
  11. $response->assertStatus(200)
  12. ->assertJsonStructure([
  13. 'data' => [
  14. '*' => [
  15. 'id',
  16. 'name',
  17. 'abbr_name',
  18. 'asset_id',
  19. 'parent_id',
  20. ]
  21. ]
  22. ]);
  23. }
  24. public function test_requirement_group_create(): void
  25. {
  26. $response = $this->post(route('requirement-group.store'), [
  27. 'abbr_name' => fake()->text(10),
  28. 'name' => fake()->text(100),
  29. 'asset_id'=> 1,
  30. 'parent_id'=> 0
  31. ]);
  32. $response->assertStatus(201);
  33. }
  34. public function test_requirement_group_show()
  35. {
  36. $group = RequirementGroup::factory()->create();
  37. $response = $this->get(route('requirement-group.show', ['requirement-group' => $group->id]));
  38. $response->assertStatus(200)
  39. ->assertJsonStructure([
  40. 'data' => [
  41. 'id',
  42. 'name',
  43. 'abbr_name',
  44. 'asset_id',
  45. 'parent_id'
  46. ]
  47. ]);
  48. }
  49. public function test_requirement_group_update(): void
  50. {
  51. $group = RequirementGroup::factory()->create();
  52. $form = [
  53. 'name' => fake()->text(100),
  54. 'abbr_name' => fake()->text(15),
  55. 'asset_id'=> 1,
  56. 'parent_id'=> 0
  57. ];
  58. $response = $this->put(route('requirement-group.update', ['requirement_group' => $group->id]), $form);
  59. $response->assertStatus(204);
  60. $newRequirementGroup = RequirementGroup::find($group->id);
  61. $this->assertEquals($form['name'], $newRequirementGroup->name);
  62. $this->assertEquals($form['abbr_name'], $newRequirementGroup->abbr_name);
  63. $this->assertEquals($form['asset_id'], $newRequirementGroup->asset_id);
  64. $this->assertEquals($form['parent_id'], $newRequirementGroup->parent_id);
  65. }
  66. public function test_requirement_group_delete(): void
  67. {
  68. $group = RequirementGroup::factory()->create();
  69. $response = $this->delete(route('requirement-group.destroy', ['requirement_group' => $group->id]));
  70. $response->assertStatus(204);
  71. $this->assertNull(RequirementGroup::find($group->id));
  72. }
  73. }