2013-06-25 10:03:20 +02:00
|
|
|
<?php
|
|
|
|
|
|
2016-03-06 23:38:04 +01:00
|
|
|
namespace Tests\FFMpeg\Unit\FFProbe;
|
2013-06-25 10:03:20 +02:00
|
|
|
|
|
|
|
|
use FFMpeg\FFProbe;
|
|
|
|
|
use FFMpeg\FFProbe\DataMapping\Format;
|
|
|
|
|
use FFMpeg\FFProbe\DataMapping\Stream;
|
|
|
|
|
use FFMpeg\FFProbe\DataMapping\StreamCollection;
|
2022-02-09 14:32:43 +01:00
|
|
|
use FFMpeg\FFProbe\Mapper;
|
|
|
|
|
use Tests\FFMpeg\Unit\TestCase;
|
2013-06-25 10:03:20 +02:00
|
|
|
|
|
|
|
|
class MapperTest extends TestCase
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @dataProvider provideMappings
|
|
|
|
|
*/
|
|
|
|
|
public function testMap($type, $data, $expected)
|
|
|
|
|
{
|
|
|
|
|
$mapper = new Mapper();
|
|
|
|
|
$this->assertEquals($expected, $mapper->map($type, $data));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testMapInvalidArgument()
|
|
|
|
|
{
|
2020-02-13 00:39:31 +01:00
|
|
|
$this->expectException('\FFMpeg\Exception\InvalidArgumentException');
|
2013-06-25 10:03:20 +02:00
|
|
|
$mapper = new Mapper();
|
|
|
|
|
$mapper->map('cool type', 'data');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function provideMappings()
|
|
|
|
|
{
|
2022-02-09 14:32:43 +01:00
|
|
|
$format = json_decode(file_get_contents(__DIR__.'/../../fixtures/ffprobe/show_format.json'), true);
|
|
|
|
|
$streams = json_decode(file_get_contents(__DIR__.'/../../fixtures/ffprobe/show_streams.json'), true);
|
2013-06-25 10:03:20 +02:00
|
|
|
|
2022-02-09 14:32:43 +01:00
|
|
|
return [
|
|
|
|
|
[FFProbe::TYPE_FORMAT, $format, new Format($format['format'])],
|
|
|
|
|
[FFProbe::TYPE_STREAMS, $streams, new StreamCollection(array_map(function ($streamData) {
|
2013-06-25 10:03:20 +02:00
|
|
|
return new Stream($streamData);
|
2022-02-09 14:32:43 +01:00
|
|
|
}, $streams['streams']))],
|
|
|
|
|
];
|
2013-06-25 10:03:20 +02:00
|
|
|
}
|
|
|
|
|
}
|