/ tests / Services / StageServiceTest.php
StageServiceTest.php
 1  <?php
 2  
 3  namespace Tests\Services;
 4  
 5  use App\Http\Services\StageService;
 6  use App\Models\Dossier;
 7  use App\Models\Stage;
 8  use Tests\TestCase;
 9  
10  class StageServiceTest extends TestCase
11  {
12      public function testSearch()
13      {
14          $dossier = Dossier::factory()->create();
15          $query = StageService::search($dossier->id, '', 'id', 'asc', []);
16          $this->assertInstanceOf(\Illuminate\Database\Eloquent\Builder::class, $query);
17      }
18  
19      /**
20       * @throws \Throwable
21       */
22      public function testCreate()
23      {
24          $data = $this->exampleDataArray();
25          $created = StageService::create($data);
26          $this->assertInstanceOf(Stage::class, $created);
27      }
28  
29      /**
30       * @throws \Throwable
31       */
32      public function testUpdate()
33      {
34          $stage = Stage::factory()->create();
35          $newData = $this->exampleDataArray();
36          $updated = StageService::update($stage->id, $newData);
37          $this->assertTrue($updated);
38      }
39  
40      /**
41       * @throws \Throwable
42       */
43      public function testRemove()
44      {
45          $stage = Stage::factory()->create();
46          StageService::delete($stage->id);
47          $this->assertDatabaseMissing($stage->getTable(), ['id' => $stage->id]);
48      }
49  
50      private function exampleDataArray() : array
51      {
52          $dossier = Dossier::factory()->create();
53          return [
54              'name' => 'New Name',
55              'dossier_id' => $dossier->id,
56          ];
57      }
58  }