diff vendor/theseer/tokenizer/tests/XMLSerializerTest.php @ 2:5311817fb629

Theme updates
author Chris Cannam
date Tue, 10 Jul 2018 13:19:18 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/theseer/tokenizer/tests/XMLSerializerTest.php	Tue Jul 10 13:19:18 2018 +0000
@@ -0,0 +1,43 @@
+<?php declare(strict_types = 1);
+namespace TheSeer\Tokenizer;
+
+use  PHPUnit\Framework\TestCase;
+
+/**
+ * @covers \TheSeer\Tokenizer\XMLSerializer
+ */
+class XMLSerializerTest extends TestCase {
+
+    /** @var TokenCollection $tokens */
+    private $tokens;
+
+    protected function setUp() {
+        $this->tokens = unserialize(
+            file_get_contents(__DIR__ . '/_files/test.php.tokens'),
+            [TokenCollection::class]
+        );
+    }
+
+    public function testCanBeSerializedToXml() {
+        $expected = file_get_contents(__DIR__ . '/_files/test.php.xml');
+
+        $serializer = new XMLSerializer();
+        $this->assertEquals($expected, $serializer->toXML($this->tokens));
+    }
+
+    public function testCanBeSerializedToDomDocument() {
+        $serializer = new XMLSerializer();
+        $result = $serializer->toDom($this->tokens);
+
+        $this->assertInstanceOf(\DOMDocument::class, $result);
+        $this->assertEquals('source', $result->documentElement->localName);
+    }
+
+    public function testCanBeSerializedToXmlWithCustomNamespace() {
+        $expected = file_get_contents(__DIR__ . '/_files/customns.xml');
+
+        $serializer = new XMLSerializer(new NamespaceUri('custom:xml:namespace'));
+        $this->assertEquals($expected, $serializer->toXML($this->tokens));
+    }
+
+}