service = app(UploadService::class); } public function testHandleUploadedFileWithMediaPathNotSet(): void { Setting::set('media_path'); /** @var User $user */ $user = User::factory()->create(); self::expectException(MediaPathNotSetException::class); $this->service->handleUploadedFile(Mockery::mock(UploadedFile::class), $user); } public function testHandleUploadedFileFails(): void { Setting::set('media_path', public_path('sandbox/media')); /** @var User $user */ $user = User::factory()->create(); self::expectException(SongUploadFailedException::class); $this->service->handleUploadedFile(UploadedFile::fake()->create('fake.mp3'), $user); } public function testHandleUploadedFile(): void { Setting::set('media_path', public_path('sandbox/media')); /** @var User $user */ $user = User::factory()->create(); $song = $this->service->handleUploadedFile(UploadedFile::fromFile(test_path('songs/full.mp3')), $user); //@phpstan-ignore-line self::assertSame($song->owner_id, $user->id); self::assertSame(public_path("sandbox/media/__KOEL_UPLOADS_\${$user->id}__/full.mp3"), $song->path); } }