internal: fix phpstan errors

This commit is contained in:
2023-10-05 16:10:30 +07:00
parent fd321739d8
commit 18359e6dec
7 changed files with 50 additions and 26 deletions

View File

@@ -14,6 +14,9 @@ class ClassDto
) {
}
/**
* @return array<string, string>
*/
public function getProperties(): array
{
return $this->properties;

View File

@@ -22,6 +22,9 @@ class LineDto
return $this->count;
}
/**
* @return array<string, string>
*/
public function getProperties(): array
{
return $this->properties;

View File

@@ -57,6 +57,10 @@ class Parser implements ElementsDictionary
return new LineDto($properties, (int) $count);
}
/**
* @param \SimpleXMLElement $xml
* @return array<array-key, \SimpleXMLElement>
*/
public function getAttributes(\SimpleXMLElement $xml): array
{
return ((array) $xml->attributes())['@attributes'] ?? [];

View File

@@ -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];
}
/**

View File

@@ -56,6 +56,11 @@ final class CloverMergeCommand extends CliCommand
}
/**
* @param array<array-key, string> $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

View File

@@ -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',

View File

@@ -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();