public function testObjectNodeDocumentSave()
 {
     $document = Document::createObjectNodeBased();
     $attribute1 = $document->createAttributeNode('attribute1');
     $attribute1->setValue('attribute1');
     $document->addAttribute($attribute1);
     $attribute2 = $document->createAttributeNode('attribute2');
     $attribute2->setValue('attribute2');
     $document->addAttribute($attribute2);
     $attribute3 = $document->createAttributeNode('attribute3');
     $attribute3->setValue('attribute3');
     $document->addAttribute($attribute3);
     $node1 = $document->createValueNode('node1');
     $node1->setValue('node1');
     $document->addNode($node1);
     $node2 = $document->createValueNode('node2');
     $node2->setValue('node2');
     $document->addNode($node2);
     $node3 = $document->createValueNode('node3');
     $node3->setValue('node3');
     $document->addNode($node3);
     $object1 = $document->createObjectNode('object');
     $document->addNode($object1);
     $node11 = $document->createValueNode('node1');
     $node11->setValue('node1');
     $object1->addNode($node11);
     $node12 = $document->createValueNode('node2');
     $node12->setValue('node2');
     $object1->addNode($node12);
     $node13 = $document->createValueNode('node3');
     $node13->setValue('node3');
     $object1->addNode($node13);
     $array1 = $document->createArrayNode('array');
     $document->addNode($array1);
     $object2 = $document->createObjectNode('object');
     $array1->addNode($object2);
     $node21 = $document->createValueNode('node1');
     $node21->setValue('node1');
     $object2->addNode($node21);
     $node22 = $document->createValueNode('node2');
     $node22->setValue('node2');
     $object2->addNode($node22);
     $node23 = $document->createValueNode('node3');
     $node23->setValue('node3');
     $object2->addNode($node23);
     $json = $document->save();
     $this->assertEquals('{"@attribute1":"attribute1","@attribute2":"attribute2","@attribute3":"attribute3","node1":"node1","node2":"node2","node3":"node3","object":{"node1":"node1","node2":"node2","node3":"node3"},"array":[{"node1":"node1","node2":"node2","node3":"node3"}]}', $json);
 }