/** * @param string $filePath * @dataProvider getXmlFilePath */ public function testParser($filePath) { // Что бы сделать пошаговость в публичке надо использовать $NS через регистрацию данныз в: //bitrix/modules/main/tools.php //FormDecode(); $ITERATION = array(); $Parser = new XmlParser($filePath); //$Parser->setReadSize(100); $Parser->setReadTimeLimit(1); $Parser->dropTempTables(); $Parser->createTempTables(); $prevFilePosition = 0; while (!$Parser->readXML($ITERATION)) { $this->assertGreaterThanOrEqual($prevFilePosition, $ITERATION['file_position']); $prevFilePosition = $ITERATION['file_position']; } $Parser->indexTempTables(); }
/** * @param string $filePath * @dataProvider getXmlFilePath */ public function testWrongFile($filePath) { $ITERATION = array(); $Parser = new XmlParser($filePath); $test = $this; $Parser->onBeforeAdd(function ($Parser, &$arFields) use($test) { /** @var \OBX\Core\Xml\Parser $Parser */ if ($arFields['NAME'] == 'offers') { $Parser->breakReading(); $Parser->endElement(); // shop $Parser->endElement(); // yml_catalog } }); $Parser->dropTempTables(); $Parser->createTempTables(); $prevFilePosition = 0; while (!$Parser->readXML($ITERATION)) { $this->assertGreaterThanOrEqual($prevFilePosition, $ITERATION['file_position']); $prevFilePosition = $ITERATION['file_position']; } }
/** * @param $filePath * @dataProvider getXmlFilePath * @depends testParser */ public function testGetNodesbyCommonID($filePath) { $Parser = new XmlParser($filePath); $rsNodes = $Parser->getList(array(), array('ATTR' => array('!offer_id' => null))); while ($arNode = $rsNodes->Fetch()) { $this->assertTrue($arNode['NAME'] == 'offer' || $arNode['NAME'] == 'category' || $arNode['NAME'] == 'currency'); } }