public createDataCollection ( string $resourceFolder ) : |
||
$resourceFolder | string | |
return |
public function createDataCollection($resourceFolder)
{
if (null === $this->collection) {
throw new \LogicException('An instance of \\Browscap\\Data\\DataCollection is required for this function. ' . 'Please set it with setDataCollection');
}
$this->getLogger()->debug('add platform file');
$this->collection->addDevicesFile($resourceFolder . '/devices.json')->addPlatformsFile($resourceFolder . '/platforms.json')->addEnginesFile($resourceFolder . '/engines.json')->addDefaultProperties($resourceFolder . '/core/default-properties.json')->addDefaultBrowser($resourceFolder . '/core/default-browser.json');
$uaSourceDirectory = $resourceFolder . '/user-agents';
$iterator = new \RecursiveDirectoryIterator($uaSourceDirectory);
foreach (new \RecursiveIteratorIterator($iterator) as $file) {
/** @var $file \SplFileInfo */
if (!$file->isFile() || $file->getExtension() !== 'json') {
continue;
}
$this->getLogger()->debug('add source file ' . $file->getPathname());
$this->collection->addSourceFile($file->getPathname());
}
return $this->collection;
}
/** * tests creating a data collection * * @group helper * @group sourcetest */ public function testCreateDataCollection() { $mockCollection = $this->getMock('\\Browscap\\Data\\DataCollection', array('addPlatformsFile', 'addSourceFile', 'addEnginesFile', 'addDevicesFile'), array(), '', false); $mockCollection->expects(self::any())->method('addPlatformsFile')->will(self::returnSelf()); $mockCollection->expects(self::any())->method('addEnginesFile')->will(self::returnSelf()); $mockCollection->expects(self::any())->method('addDevicesFile')->will(self::returnSelf()); $mockCollection->expects(self::any())->method('addSourceFile')->will(self::returnSelf()); $this->object->setLogger($this->logger)->setDataCollection($mockCollection); $result = $this->object->createDataCollection(__DIR__ . '/../../fixtures'); self::assertInstanceOf('\\Browscap\\Data\\DataCollection', $result); self::assertSame($mockCollection, $result); }