lastFmService = Mockery::mock(LastfmService::class); $this->mediaMetadataService = Mockery::mock(MediaMetadataService::class); $this->mediaInformationService = new MediaInformationService($this->lastFmService, $this->mediaMetadataService); } public function testGetAlbumInformation(): void { /** @var Album $album */ $album = Album::factory()->create(); $info = AlbumInformation::make(); $this->lastFmService ->shouldReceive('getAlbumInformation') ->once() ->with($album) ->andReturn($info); self::assertSame($info, $this->mediaInformationService->getAlbumInformation($album)); } public function testGetAlbumInformationTriesDownloadingCover(): void { /** @var Album $album */ $album = Album::factory()->create(['cover' => '']); $info = AlbumInformation::make(); $this->lastFmService ->shouldReceive('getAlbumInformation') ->once() ->with($album) ->andReturn($info); $this->mediaMetadataService ->shouldReceive('tryDownloadAlbumCover') ->with($album); self::assertSame($info, $this->mediaInformationService->getAlbumInformation($album)); } public function testGetArtistInformation(): void { /** @var Artist $artist */ $artist = Artist::factory()->create(); $info = ArtistInformation::make(); $this->lastFmService ->shouldReceive('getArtistInformation') ->once() ->with($artist) ->andReturn($info); self::assertSame($info, $this->mediaInformationService->getArtistInformation($artist)); } public function testGetArtistInformationTriesDownloadingImage(): void { /** @var Artist $artist */ $artist = Artist::factory()->create(['image' => '']); $info = ArtistInformation::make(); $this->lastFmService ->shouldReceive('getArtistInformation') ->once() ->with($artist) ->andReturn($info); $this->mediaMetadataService ->shouldReceive('tryDownloadArtistImage') ->with($artist); self::assertSame($info, $this->mediaInformationService->getArtistInformation($artist)); } }