2018-08-29 09:41:24 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Tests\Integration\Services;
|
|
|
|
|
|
|
|
use App\Services\FileSynchronizer;
|
|
|
|
use Tests\TestCase;
|
|
|
|
|
|
|
|
class FileSynchronizerTest extends TestCase
|
|
|
|
{
|
|
|
|
/** @var FileSynchronizer */
|
|
|
|
private $fileSynchronizer;
|
|
|
|
|
2019-07-22 07:03:23 +00:00
|
|
|
public function setUp(): void
|
2018-08-29 09:41:24 +00:00
|
|
|
{
|
|
|
|
parent::setUp();
|
|
|
|
$this->fileSynchronizer = app(FileSynchronizer::class);
|
|
|
|
}
|
|
|
|
|
2019-07-22 07:03:23 +00:00
|
|
|
public function testGetFileInfo(): void
|
2018-08-29 09:41:24 +00:00
|
|
|
{
|
2018-08-29 09:42:11 +00:00
|
|
|
$info = $this->fileSynchronizer->setFile(__DIR__.'/../../songs/full.mp3')->getFileInfo();
|
2018-08-29 09:41:24 +00:00
|
|
|
|
|
|
|
$expectedData = [
|
|
|
|
'artist' => 'Koel',
|
|
|
|
'album' => 'Koel Testing Vol. 1',
|
|
|
|
'compilation' => false,
|
|
|
|
'title' => 'Amet',
|
|
|
|
'track' => 5,
|
|
|
|
'disc' => 3,
|
|
|
|
'lyrics' => "Foo\rbar",
|
|
|
|
'cover' => [
|
2018-08-29 09:42:11 +00:00
|
|
|
'data' => file_get_contents(__DIR__.'/../../blobs/cover.png'),
|
2018-08-29 09:41:24 +00:00
|
|
|
'image_mime' => 'image/png',
|
|
|
|
'image_width' => 512,
|
|
|
|
'image_height' => 512,
|
|
|
|
'imagetype' => 'PNG',
|
|
|
|
'picturetype' => 'Other',
|
|
|
|
'description' => '',
|
|
|
|
'datalength' => 7627,
|
|
|
|
],
|
2018-08-29 09:42:11 +00:00
|
|
|
'path' => __DIR__.'/../../songs/full.mp3',
|
|
|
|
'mtime' => filemtime(__DIR__.'/../../songs/full.mp3'),
|
2018-08-29 09:41:24 +00:00
|
|
|
'albumartist' => '',
|
|
|
|
];
|
|
|
|
|
|
|
|
self::assertArraySubset($expectedData, $info);
|
|
|
|
self::assertEquals(10.083, $info['length'], '', 0.001);
|
|
|
|
}
|
|
|
|
|
|
|
|
/** @test */
|
2019-07-22 07:03:23 +00:00
|
|
|
public function song_without_a_title_tag_has_file_name_as_the_title(): void
|
2018-08-29 09:41:24 +00:00
|
|
|
{
|
2018-08-29 09:42:11 +00:00
|
|
|
$this->fileSynchronizer->setFile(__DIR__.'/../../songs/blank.mp3');
|
2018-08-29 09:41:24 +00:00
|
|
|
self::assertSame('blank', $this->fileSynchronizer->getFileInfo()['title']);
|
|
|
|
}
|
|
|
|
}
|