* Dariusz Rumiński * * This source file is subject to the MIT license that is bundled * with this source code in the file LICENSE. */ namespace PhpCsFixer\Tests\Console\Report\FixReport; use PhpCsFixer\Console\Application; use PhpCsFixer\Console\Report\FixReport\ReporterInterface; use PhpCsFixer\Console\Report\FixReport\XmlReporter; use PhpCsFixer\PhpunitConstraintXmlMatchesXsd\Constraint\XmlMatchesXsd; use Symfony\Component\Console\Formatter\OutputFormatter; /** * @author Boris Gorbylev * @author Dariusz Rumiński * * @internal * * @covers \PhpCsFixer\Console\Report\FixReport\XmlReporter */ final class XmlReporterTest extends AbstractReporterTestCase { /** * @var null|string */ private static $xsd; public static function setUpBeforeClass(): void { parent::setUpBeforeClass(); $content = file_get_contents(__DIR__.'/../../../../doc/schemas/fix/xml.xsd'); if (false === $content) { throw new \RuntimeException('Cannot read file.'); } self::$xsd = $content; } public static function tearDownAfterClass(): void { parent::tearDownAfterClass(); self::$xsd = null; } protected static function createNoErrorReport(): string { $about = Application::getAbout(); return << XML; } protected static function createSimpleReport(): string { $about = Application::getAbout(); return << --- Original +++ New @@ -2,7 +2,7 @@ class Foo { - public function bar(\$foo = 1, \$bar) + public function bar(\$foo, \$bar) { } } XML; } protected static function createWithDiffReport(): string { $about = Application::getAbout(); return << --- Original +++ New @@ -2,7 +2,7 @@ class Foo { - public function bar(\$foo = 1, \$bar) + public function bar(\$foo, \$bar) { } } XML; } protected static function createWithAppliedFixersReport(): string { $about = Application::getAbout(); return << XML; } protected static function createWithTimeAndMemoryReport(): string { $about = Application::getAbout(); return << --- Original +++ New @@ -2,7 +2,7 @@ class Foo { - public function bar(\$foo = 1, \$bar) + public function bar(\$foo, \$bar) { } } XML; } protected static function createComplexReport(): string { $about = Application::getAbout(); return << this text is a diff ;) another diff here ;) XML; } protected function createReporter(): ReporterInterface { return new XmlReporter(); } protected function getFormat(): string { return 'xml'; } protected function assertFormat(string $expected, string $input): void { $formatter = new OutputFormatter(); $input = $formatter->format($input); self::assertThat($input, new XmlMatchesXsd(self::$xsd)); self::assertXmlStringEqualsXmlString($expected, $input); } }