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 }