MockResultsPruner   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 8
c 1
b 0
f 1
dl 0
loc 28
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A getPrunedResults() 0 16 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DaveLiddament\StaticAnalysisResultsBaseliner\Tests\TestDoubles;
6
7
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\BaseLineFileName;
8
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\ProjectRoot;
9
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Pruner\PrunedResults;
10
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Pruner\ResultsPrunerInterface;
11
use DaveLiddament\StaticAnalysisResultsBaseliner\Tests\Helpers\StringAssertionsTrait;
12
use PHPUnit\Framework\Assert;
13
14
final class MockResultsPruner implements ResultsPrunerInterface
15
{
16
    use StringAssertionsTrait;
17
18
    public function __construct(
19
        private string $expectedAnalysisResults,
20
        private PrunedResults $prunedOutputResults,
21
        private ?ProjectRoot $projectRoot,
22
        private ?\Throwable $throwable,
23
    ) {
24
    }
25
26
    public function getPrunedResults(
27
        BaseLineFileName $baseLineFileName,
28
        string $analysisResults,
29
        ProjectRoot $projectRoot,
30
        bool $ignoreWarnings,
31
    ): PrunedResults {
32
        if (null !== $this->throwable) {
33
            throw $this->throwable;
34
        }
35
        $this->assertSameAllowingExtraNewLine($this->expectedAnalysisResults, $analysisResults);
36
37
        if (null !== $this->projectRoot) {
38
            Assert::assertSame($this->projectRoot->getProjectRootDirectory(), $projectRoot->getProjectRootDirectory());
39
        }
40
41
        return $this->prunedOutputResults;
42
    }
43
}
44