/** * @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 testAddAttr * @depends testGetAttributes * @depends testIndexWithAttr */ public function testParser($filePath) { $ITERATION = array(); $Parser = new XmlParser($filePath); //$Parser->setReadSize(100); $Parser->setReadTimeLimit(1); $prevFilePosition = 0; while (!$Parser->readXML($ITERATION)) { $this->assertGreaterThanOrEqual($prevFilePosition, $ITERATION['file_position']); $prevFilePosition = $ITERATION['file_position']; } $Parser->indexTempTables(); }