Beispiel #1
0
 /**
  * @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();
 }
Beispiel #2
0
 /**
  * @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'];
     }
 }
Beispiel #3
0
 /**
  * @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');
     }
 }