Пример #1
0
 public function testXmlSerializationRoundtrip()
 {
     $node = new ymcPipeBasicNodeMock($this->getMock('ymcPipe'));
     $node->config->setPropertiesTestHelper(array('hi' => 'du'));
     $document = new DOMDocument();
     $element = $document->createElement('xyzblub');
     $document->appendChild($element);
     $node->serializeToXml($element);
     $newNode = ymcPipeNode::unserializeFromXml($element, $this->getMock('ymcPipe'));
     $this->assertEquals($node, $newNode);
 }
Пример #2
0
 public static function loadFromDocument(DOMDocument $document)
 {
     $pipe = new ymcPipe($document->documentElement->getAttribute('name'));
     // Create node objects.
     $nodes = array();
     $xmlNodes = $document->getElementsByTagName('node');
     // unserialize nodes
     foreach ($xmlNodes as $xmlNode) {
         $id = (int) $xmlNode->getAttribute('id');
         $node = ymcPipeNode::unserializeFromXml($xmlNode, $pipe);
         $node->id = (int) $id;
         $nodes[$id] = $node;
     }
     // Connect node objects.
     foreach ($xmlNodes as $xmlNode) {
         $id = (int) $xmlNode->getAttribute('id');
         foreach ($xmlNode->getElementsByTagName('outNode') as $outNode) {
             $nodes[$id]->addOutNode($nodes[(int) $outNode->getAttribute('id')]);
         }
     }
     //$pipe->definitionStorage = $this;
     $pipe->version = $document->documentElement->getAttribute('version');
     //$pipe->verify();
     return $pipe;
 }