AssetTest.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php
  2. namespace Tests\Feature\API;
  3. use App\Models\Asset;
  4. use Tests\Feature\TestCase;
  5. class AssetTest extends TestCase
  6. {
  7. public function test_asset_list()
  8. {
  9. Asset::factory(30)->create();
  10. $response = $this->get(route('asset.index'));
  11. $response->assertStatus(200)
  12. ->assertJsonStructure([
  13. 'data' => [
  14. '*' => [
  15. 'id',
  16. 'name',
  17. 'code',
  18. 'description',
  19. 'status',
  20. 'created_by',
  21. 'owner',
  22. 'address',
  23. 'group_id',
  24. 'geo_address_code',
  25. 'acl',
  26. 'whitelist',
  27. 'latitude',
  28. 'longitude',
  29. ]
  30. ]
  31. ]);
  32. }
  33. public function test_asset_create(): void
  34. {
  35. $form = Asset::factory()->make();
  36. $form->whitelist = [1];
  37. $response = $this->post(route('asset.store'), $form->toArray());
  38. $response->assertStatus(201);
  39. }
  40. public function test_asset_detail(): void
  41. {
  42. $asset = Asset::factory()->create();
  43. $response = $this->get(route('asset.show', ['asset' => $asset->id]));
  44. $response->assertStatus(200)->assertJsonStructure([
  45. 'data' => [
  46. 'id',
  47. 'name',
  48. 'code',
  49. 'description',
  50. 'status',
  51. 'created_by',
  52. 'owner',
  53. 'address',
  54. 'group_id',
  55. 'geo_address_code',
  56. 'acl',
  57. 'whitelist',
  58. 'latitude',
  59. 'longitude',
  60. ]
  61. ]);
  62. }
  63. public function test_asset_update(): void
  64. {
  65. $asset = Asset::factory()->create();
  66. $form = Asset::factory()->make();
  67. $form->whitelist = [1];
  68. $response = $this->put(route('asset.update', ['asset' => $asset->id]), $form->toArray());
  69. $response->assertStatus(204);
  70. $newAsset = Asset::find($asset->id);
  71. $this->assertEquals($form->name, $newAsset->name);
  72. }
  73. public function test_asset_delete(): void
  74. {
  75. $asset = Asset::factory()->create();
  76. $response = $this->delete(route('asset.destroy', ['asset' => $asset->id]));
  77. $response->assertStatus(204);
  78. $this->assertNull(Asset::find($asset->id));
  79. }
  80. }