private function assertCompilerOutput($source, $expected)
 {
     $nodes = $this->parser->parse($source);
     $compiler = new SourceCompiler(new SimpleComponentCompiler(), $this->componentsProvider);
     $compiled = $compiler->compileTemplate($nodes);
     echo $compiled;
     $compiledNodes = $this->phpParser->parse($compiled);
     $expectedNodes = $this->phpParser->parse($expected);
     $this->assertEquals($this->serializer->serialize($expectedNodes), $this->serializer->serialize($compiledNodes));
 }
 private function assertTreeBuilderOutput($source_file, $tokens_file)
 {
     $source = $this->loadFixture($source_file);
     $phpNodes = $this->phpParser->parse($source);
     $tokenizer = new TreeEmittingTokenizer(new PhpNodesInputStream($phpNodes), $tree = new TreeBuilder($this->componentsProvider));
     $nodes = $tokenizer->parse();
     $actual = new \DOMDocument();
     $actual->preserveWhiteSpace = false;
     $actual->loadXML($this->serializer->serialize($nodes));
     $expected = new \DOMDocument();
     $expected->preserveWhiteSpace = false;
     $expected->loadXML($this->loadFixture($tokens_file));
     $this->assertEquals($expected, $actual);
 }