koel/tests/Unit/Services/MediaMetadataServiceTest.php

60 lines
1.8 KiB
PHP
Raw Normal View History

<?php
namespace Tests\Unit\Services;
use App\Models\Album;
use App\Models\Artist;
use App\Services\ImageWriter;
use App\Services\MediaMetadataService;
use Illuminate\Log\Logger;
use Mockery;
2022-07-16 22:42:29 +00:00
use Mockery\LegacyMockInterface;
use Mockery\MockInterface;
use Tests\TestCase;
class MediaMetadataServiceTest extends TestCase
{
2022-07-16 22:42:29 +00:00
private MediaMetadataService $mediaMetadataService;
private LegacyMockInterface|ImageWriter|MockInterface $imageWriter;
public function setUp(): void
{
parent::setUp();
$this->imageWriter = Mockery::mock(ImageWriter::class);
$this->mediaMetadataService = new MediaMetadataService($this->imageWriter, app(Logger::class));
}
public function testWriteAlbumCover(): void
{
/** @var Album $album */
$album = Album::factory()->create();
$coverContent = 'dummy';
2020-09-12 15:01:48 +00:00
$coverPath = '/koel/public/img/album/foo.jpg';
$this->imageWriter
->shouldReceive('writeFromBinaryData')
->once()
2020-09-12 15:01:48 +00:00
->with('/koel/public/img/album/foo.jpg', 'dummy');
$this->mediaMetadataService->writeAlbumCover($album, $coverContent, 'jpg', $coverPath);
2020-09-06 18:21:39 +00:00
self::assertEquals(album_cover_url('foo.jpg'), Album::find($album->id)->cover);
}
public function testWriteArtistImage(): void
{
2020-06-12 15:05:18 +00:00
/** @var Artist $artist */
$artist = Artist::factory()->create();
$imageContent = 'dummy';
2020-09-12 15:01:48 +00:00
$imagePath = '/koel/public/img/artist/foo.jpg';
$this->imageWriter
->shouldReceive('writeFromBinaryData')
->once()
2020-09-12 15:01:48 +00:00
->with('/koel/public/img/artist/foo.jpg', 'dummy');
$this->mediaMetadataService->writeArtistImage($artist, $imageContent, 'jpg', $imagePath);
2020-09-06 18:21:39 +00:00
self::assertEquals(artist_image_url('foo.jpg'), Artist::find($artist->id)->image);
}
}