public function testRender()
 {
     $XmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes);
     $mockFalseXmlToArrayNode = new XmlToArrayNode($this->_name, false);
     $XmlToArrayNode->addChild($mockFalseXmlToArrayNode);
     $mockXmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes);
     $XmlToArrayNode->addChild($mockXmlToArrayNode);
     $this->assertEquals(array('name' => array('name' => array(0 => '', 1 => ''))), $XmlToArrayNode->render('struct'));
     $XmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes);
     $XmlToArrayNode->addChild($mockXmlToArrayNode);
     $this->assertEquals(array('name' => array('name' => '')), $XmlToArrayNode->render('struct'));
     $this->assertEquals(array('name' => array('name' => array('name' => array('@data' => '', '@attributes' => array('attribute1' => 'val1', 'attribute2' => 'val2'))), '@data' => '', '@attributes' => array('attribute1' => 'val1', 'attribute2' => 'val2'))), $XmlToArrayNode->render(FALSE));
     $this->assertEquals(array('name' => array('name' => '')), $XmlToArrayNode->render(TRUE));
     $mock2XmlToArrayNode = new XmlToArrayNode($this->_name, array());
     $XmlToArrayNode = new XmlToArrayNode($this->_name, $this->_attributes);
     $mockXmlToArrayNode->addChild($mock2XmlToArrayNode);
     $XmlToArrayNode->addChild($mockXmlToArrayNode);
     $XmlToArrayNode->addChild($mockXmlToArrayNode);
     $this->assertEquals(array('name' => array('name' => array(0 => array('name' => array('name' => '')), 1 => array('name' => array('name' => ''))))), $XmlToArrayNode->render('struct'));
 }
 /**
  * Returns parsed XML as array structure
  * @param boolean $simpleStructure (default false)
  * @return array
  */
 public function toArray($simpleStructure = false)
 {
     return $this->_CurrentXmlToArrayNode->render($simpleStructure);
 }
 /**
  * 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);
 }