public function testEnd()
 {
     $XmlToArray = new XmlToArray($this->_xml, $this->_maxDepth);
     $XmlToArrayNode = new XmlToArrayNode('test', array('test' => 'test'));
     $XmlToArrayNode->setParentXmlToArrayNode($XmlToArrayNode);
     $end = self::_getMethod('_end', $this->_classToTest);
     $CurrentXmlToArrayNode = self::_getProperty('_CurrentXmlToArrayNode', $this->_classToTest);
     $CurrentXmlToArrayNode->setValue($XmlToArray, $XmlToArrayNode);
     $XMLParser = xml_parser_create();
     try {
         $end->invoke($XmlToArray, $XMLParser, 'test1');
     } catch (Exception $expected) {
         return;
     }
     $this->fail('An expected exception has not been raised.');
     xml_parser_free($XMLParser);
 }
Exemplo n.º 2
0
 /**
  * Handler for start tags
  * @param resource $parser a resource handle of the XML parser
  * @param string $name
  * @param array $attributes
  * @return void
  */
 private function _start($parser, $name, $attributes)
 {
     $this->_tagStack[] = $name;
     if ($this->_maxDepth && count($this->_tagStack) > $this->_maxDepth) {
         throw new XmlToArrayException('Parse Error: max depth exceeded.', '7005');
     }
     $XmlToArrayNode = new XmlToArrayNode($name, $attributes);
     if ($this->_CurrentXmlToArrayNode instanceof XmlToArrayNode && $this->_CurrentXmlToArrayNode->isOpen()) {
         $this->_CurrentXmlToArrayNode->addChild($XmlToArrayNode);
         $XmlToArrayNode->setParentXmlToArrayNode($this->_CurrentXmlToArrayNode);
     }
     $this->_CurrentXmlToArrayNode = $XmlToArrayNode;
 }
Exemplo n.º 3
0
 public function testSetParentXmlToArrayNode()
 {
     $XmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes);
     $mockXmlToArrayNode = $this->getMock('XmlToArrayNode', array(), array($this->_name, $this->_attributes));
     $XmlToArrayNode->setParentXmlToArrayNode($mockXmlToArrayNode);
     $this->assertAttributeEquals($mockXmlToArrayNode, '_ParentXmlToArrayNode', $XmlToArrayNode);
 }
Exemplo n.º 4
0
 /**
  * Renders a single node
  *
  * @param XmlToArrayNode $Child
  * @param bool $simpleStructureChildHasNoChildren
  * @param bool $simpleStructure
  * @return array
  */
 private function _renderNode($Child, $simpleStructureChildHasNoChildren, $simpleStructure)
 {
     if ($simpleStructureChildHasNoChildren) {
         return $Child->getData();
     }
     return $Child->render($simpleStructure);
 }