3 namespace PhpParser\Serializer;
7 class XMLTest extends \PHPUnit_Framework_TestCase
10 * @covers PhpParser\Serializer\XML<extended>
12 public function testSerialize() {
17 function functionName(&\$a = 0, \$b = 1.0) {
22 <?xml version="1.0" encoding="UTF-8"?>
23 <AST xmlns:node="http://nikic.github.com/PHPParser/XML/node" xmlns:subNode="http://nikic.github.com/PHPParser/XML/subNode" xmlns:attribute="http://nikic.github.com/PHPParser/XML/attribute" xmlns:scalar="http://nikic.github.com/PHPParser/XML/scalar">
27 <scalar:int>4</scalar:int>
28 </attribute:startLine>
31 <comment isDocComment="false" line="2">// comment
33 <comment isDocComment="true" line="3">/** doc comment */</comment>
37 <scalar:int>6</scalar:int>
43 <scalar:string>functionName</scalar:string>
49 <scalar:int>4</scalar:int>
50 </attribute:startLine>
52 <scalar:int>4</scalar:int>
64 <scalar:string>a</scalar:string>
69 <scalar:int>4</scalar:int>
70 </attribute:startLine>
72 <scalar:int>4</scalar:int>
75 <scalar:int>10</scalar:int>
78 <scalar:int>0</scalar:int>
80 </node:Scalar_LNumber>
85 <scalar:int>4</scalar:int>
86 </attribute:startLine>
88 <scalar:int>4</scalar:int>
100 <scalar:string>b</scalar:string>
103 <node:Scalar_DNumber>
104 <attribute:startLine>
105 <scalar:int>4</scalar:int>
106 </attribute:startLine>
108 <scalar:int>4</scalar:int>
111 <scalar:float>1</scalar:float>
113 </node:Scalar_DNumber>
120 </subNode:returnType>
124 <attribute:startLine>
125 <scalar:int>5</scalar:int>
126 </attribute:startLine>
128 <scalar:int>5</scalar:int>
133 <attribute:startLine>
134 <scalar:int>5</scalar:int>
135 </attribute:startLine>
137 <scalar:int>5</scalar:int>
140 <scalar:int>1</scalar:int>
143 <scalar:string>Foo</scalar:string>
145 </node:Scalar_String>
151 </node:Stmt_Function>
156 $parser = new PhpParser\Parser\Php7(new PhpParser\Lexer);
157 $serializer = new XML;
159 $code = str_replace("\r\n", "\n", $code);
160 $stmts = $parser->parse($code);
161 $this->assertXmlStringEqualsXmlString($xml, $serializer->serialize($stmts));
165 * @expectedException \InvalidArgumentException
166 * @expectedExceptionMessage Unexpected node type
168 public function testError() {
169 $serializer = new XML;
170 $serializer->serialize(array(new \stdClass));