/** * @param $filePath * @dataProvider getXmlFilePath * @depends testAddAttrAfterTableCreation */ public function testAddAttr($filePath) { $Parser = new XmlParser($filePath); $Parser->dropTempTables(); $Parser->addAttribute('available:offer_avail', 'offer', 3, true, true); $Parser->addAttribute('id:common_id', false, false, true, true); $Parser->addAttribute('id:offer_id', 'offer', 3, true, true); $Parser->createTempTables(); }
/** * @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']; } }