diff --git a/src/Clover/Dto/ClassDto.php b/src/Clover/Dto/ClassDto.php index 3df1fa5..a193733 100644 --- a/src/Clover/Dto/ClassDto.php +++ b/src/Clover/Dto/ClassDto.php @@ -14,6 +14,9 @@ class ClassDto ) { } + /** + * @return array + */ public function getProperties(): array { return $this->properties; diff --git a/src/Clover/Dto/LineDto.php b/src/Clover/Dto/LineDto.php index 8f8dea6..59c8a1c 100644 --- a/src/Clover/Dto/LineDto.php +++ b/src/Clover/Dto/LineDto.php @@ -22,6 +22,9 @@ class LineDto return $this->count; } + /** + * @return array + */ public function getProperties(): array { return $this->properties; diff --git a/src/Clover/Parser.php b/src/Clover/Parser.php index 3aefdb2..2f44fdc 100644 --- a/src/Clover/Parser.php +++ b/src/Clover/Parser.php @@ -57,6 +57,10 @@ class Parser implements ElementsDictionary return new LineDto($properties, (int) $count); } + /** + * @param \SimpleXMLElement $xml + * @return array + */ public function getAttributes(\SimpleXMLElement $xml): array { return ((array) $xml->attributes())['@attributes'] ?? []; diff --git a/src/Clover/Renderer.php b/src/Clover/Renderer.php index 5bc8cec..cdad8b1 100644 --- a/src/Clover/Renderer.php +++ b/src/Clover/Renderer.php @@ -14,7 +14,7 @@ class Renderer { /** * @param Accumulator $accumulator - * @return array + * @return array{0: string, 1: Metrics} * @throws \DOMException */ public function renderAccumulator(Accumulator $accumulator): array @@ -71,7 +71,7 @@ class Renderer $xmlProject->appendChild($this->renderMetricsProject($xmlDocument, $projectMetrics)); - return [$xmlDocument->saveXML(), $projectMetrics]; + return [(string) $xmlDocument->saveXML(), $projectMetrics]; } /** diff --git a/src/Command/CloverMergeCommand.php b/src/Command/CloverMergeCommand.php index 943835c..146daab 100644 --- a/src/Command/CloverMergeCommand.php +++ b/src/Command/CloverMergeCommand.php @@ -56,6 +56,11 @@ final class CloverMergeCommand extends CliCommand } /** + * @param array $files + * @param string $output + * @param string|null $workdir + * @param bool $stats + * @return int * @throws ExecuteException */ public function execute(array $files, string $output, ?string $workdir, bool $stats): int diff --git a/tests/Unit/Clover/Handler/HandleSingleDocumentTest.php b/tests/Unit/Clover/Handler/HandleSingleDocumentTest.php index d9819e0..0874b7f 100644 --- a/tests/Unit/Clover/Handler/HandleSingleDocumentTest.php +++ b/tests/Unit/Clover/Handler/HandleSingleDocumentTest.php @@ -10,11 +10,11 @@ use Dannecron\CoverageMerger\Clover\Parser; \test('examples without files', function (string $exampleFilename): void { $handler = new Handler(new Parser()); - $cloverContents = \file_get_contents(\getExamplePath($exampleFilename)); + $cloverContents = (string) \file_get_contents(\getExamplePath($exampleFilename)); + /** @var \SimpleXMLElement $xml */ + $xml = \simplexml_load_string($cloverContents); - $accumulator = $handler->handleSingleDocument( - \simplexml_load_string($cloverContents), - ); + $accumulator = $handler->handleSingleDocument($xml); $files = $accumulator->getFiles(); \expect($files)->toHaveCount(0); @@ -34,11 +34,11 @@ use Dannecron\CoverageMerger\Clover\Parser; ): void { $handler = new Handler(new Parser()); - $cloverContents = \file_get_contents(\getExamplePath($exampleFilename)); + $cloverContents = (string) \file_get_contents(\getExamplePath($exampleFilename)); + /** @var \SimpleXMLElement $xml */ + $xml = \simplexml_load_string($cloverContents); - $accumulator = $handler->handleSingleDocument( - \simplexml_load_string($cloverContents), - ); + $accumulator = $handler->handleSingleDocument($xml); $files = $accumulator->getFiles(); \expect($files)->toHaveCount(1)->toHaveKey($expectedFilename); @@ -62,11 +62,11 @@ use Dannecron\CoverageMerger\Clover\Parser; ): void { $handler = new Handler(new Parser()); - $cloverContents = \file_get_contents(\getExamplePath($exampleFilename)); + $cloverContents = (string) \file_get_contents(\getExamplePath($exampleFilename)); + /** @var \SimpleXMLElement $xml */ + $xml = \simplexml_load_string($cloverContents); - $accumulator = $handler->handleSingleDocument( - \simplexml_load_string($cloverContents), - ); + $accumulator = $handler->handleSingleDocument($xml); $files = $accumulator->getFiles(); \expect($files)->toHaveCount(2) @@ -81,12 +81,12 @@ use Dannecron\CoverageMerger\Clover\Parser; \test('examples with invalid structure', function (string $exampleFilename): void { $handler = new Handler(new Parser()); - $cloverContents = \file_get_contents(\getExamplePath($exampleFilename)); + $cloverContents = (string) \file_get_contents(\getExamplePath($exampleFilename)); + /** @var \SimpleXMLElement $xml */ + $xml = \simplexml_load_string($cloverContents); $this->expectException(HandleException::class); - $handler->handleSingleDocument( - \simplexml_load_string($cloverContents), - ); + $handler->handleSingleDocument($xml); }) ->with([ 'file-with-bad-line.xml', diff --git a/tests/Unit/Clover/Handler/HandleTest.php b/tests/Unit/Clover/Handler/HandleTest.php index 2a2101d..61fc0f1 100644 --- a/tests/Unit/Clover/Handler/HandleTest.php +++ b/tests/Unit/Clover/Handler/HandleTest.php @@ -9,18 +9,27 @@ use Dannecron\CoverageMerger\Clover\Handler; use Dannecron\CoverageMerger\Clover\Parser; \test('merge multiple valid files', function (): void { - $fileWithPackage = \file_get_contents(\getExamplePath('file-with-package.xml')); - $fileWithoutPackage = \file_get_contents(\getExamplePath('file-without-package.xml')); - $fileWithDifferences = \file_get_contents(\getExamplePath('file-with-differences.xml')); - $metricsAndClasses = \file_get_contents(\getExamplePath('metrics-and-classes.xml')); + $fileWithPackage = (string) \file_get_contents(\getExamplePath('file-with-package.xml')); + $fileWithoutPackage = (string) \file_get_contents(\getExamplePath('file-without-package.xml')); + $fileWithDifferences = (string) \file_get_contents(\getExamplePath('file-with-differences.xml')); + $metricsAndClasses = (string) \file_get_contents(\getExamplePath('metrics-and-classes.xml')); $handler = new Handler(new Parser()); + /** @var \SimpleXMLElement $xmlFileWithPackage */ + $xmlFileWithPackage = \simplexml_load_string($fileWithPackage); + /** @var \SimpleXMLElement $xmlFileWithoutPackage */ + $xmlFileWithoutPackage = \simplexml_load_string($fileWithoutPackage); + /** @var \SimpleXMLElement $xmlFileWithDifferences */ + $xmlFileWithDifferences = \simplexml_load_string($fileWithDifferences); + /** @var \SimpleXMLElement $xmlMetricsAndClasses */ + $xmlMetricsAndClasses = \simplexml_load_string($metricsAndClasses); + $accumulator = $handler->handle( - \simplexml_load_string($fileWithPackage), - \simplexml_load_string($fileWithoutPackage), - \simplexml_load_string($fileWithDifferences), - \simplexml_load_string($metricsAndClasses), + $xmlFileWithPackage, + $xmlFileWithoutPackage, + $xmlFileWithDifferences, + $xmlMetricsAndClasses, ); $files = $accumulator->getFiles();