/** * @dataProvider attributesProvider */ public function testSanitizeAttributes(array $attributes) { $mediaInfoContainerBuilder = new MediaInfoContainerBuilder(); $mediaInfoContainerBuilder->addTrackType(TypeFactory::AUDIO, $attributes); $mediaContainer = $mediaInfoContainerBuilder->build(); $audios = $mediaContainer->getAudios(); $this->assertEquals('Mhor\\MediaInfo\\Attribute\\Duration', get_class($audios[0]->get('duration'))); /** @var Duration $duration */ $duration = $audios[0]->get('duration'); $this->assertEquals('10', $duration->getMilliseconds()); }
/** * @param bool $ignoreUnknownTrackTypes Optional parameter used to skip unknown track types by passing true. The * default behavior (false) is throw an exception on unknown track types. * * @throws Mhor\MediaInfo\Exception\UnknownTrackTypeException * * @return MediaInfoContainer */ public function getMediaInfoContainer($ignoreUnknownTrackTypes = false) { if ($this->parsedOutput === null) { throw new \Exception('You must run `parse` before running `getMediaInfoContainer`'); } $mediaInfoContainerBuilder = new MediaInfoContainerBuilder($ignoreUnknownTrackTypes); $mediaInfoContainerBuilder->setVersion($this->parsedOutput['@attributes']['version']); foreach ($this->parsedOutput['File']['track'] as $trackType) { try { $mediaInfoContainerBuilder->addTrackType($trackType['@attributes']['type'], $trackType); } catch (UnknownTrackTypeException $ex) { if (!$ignoreUnknownTrackTypes) { // rethrow exception throw $ex; } // else ignore } } return $mediaInfoContainerBuilder->build(); }
/** * @expectedException \Exception */ public function testAddInvalidTypeOnMediaInfoContainer() { $mediaInfoContainerBuilder = new MediaInfoContainerBuilder(); $mediaInfoContainer = $mediaInfoContainerBuilder->build(); $mediaInfoContainer->add(new TrackTestType()); }