public addEnginesFile ( string $src ) : |
||
$src | string | Name of the file |
Résultat |
public function addEnginesFile($src)
{
$json = $this->loadFile($src);
if (!isset($json['engines'])) {
throw new \UnexpectedValueException('required "engines" structure is missing');
}
$engineFactory = new Factory\EngineFactory();
foreach (array_keys($json['engines']) as $engineName) {
$engineData = $json['engines'][$engineName];
if (!isset($engineData['properties']) && !isset($engineData['inherits'])) {
throw new \UnexpectedValueException('required attibute "properties" is missing');
}
$this->engines[$engineName] = $engineFactory->build($engineData, $json, $engineName);
}
$this->divisionsHaveBeenSorted = false;
return $this;
}
/** * tests getting an existing engine * * @group data * @group sourcetest */ public function testGetEngine() { $this->object->addEnginesFile($this->getEngineJsonFixture()); self::assertInternalType('array', $this->object->getEngines()); $engine = $this->object->getEngine('Foobar'); self::assertInstanceOf('\\Browscap\\Data\\Engine', $engine); $properties = $engine->getProperties(); self::assertInternalType('array', $properties); self::assertArrayHasKey('RenderingEngine_Name', $properties); self::assertSame('Foobar', $properties['RenderingEngine_Name']); }