MockBaseLineCreator::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
eloc 0
c 2
b 0
f 0
nc 1
nop 6
dl 0
loc 8
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DaveLiddament\StaticAnalysisResultsBaseliner\Tests\Unit\Framework\Command;
6
7
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\BaseLiner\BaseLineAnalysisResults;
8
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\BaseLine;
9
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\BaseLineFileName;
10
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\ProjectRoot;
11
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Creator\BaseLineCreatorInterface;
12
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\HistoryAnalyser\HistoryFactory;
13
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\ResultsParser\ResultsParser;
14
use DaveLiddament\StaticAnalysisResultsBaseliner\Plugins\GitDiffHistoryAnalyser\GitCommit;
15
use DaveLiddament\StaticAnalysisResultsBaseliner\Tests\Helpers\StringAssertionsTrait;
16
use PHPUnit\Framework\Assert;
17
18
final class MockBaseLineCreator implements BaseLineCreatorInterface
19
{
20
    use StringAssertionsTrait;
21
22
    public function __construct(
23
        private HistoryFactory $expectedHistoryFactory,
24
        private ResultsParser $expectedResultsParser,
25
        private BaseLineFileName $expectedBaseLineFileName,
26
        private ?ProjectRoot $expectedProjectRoot,
27
        private string $expectedAnalysisResultsAsString,
28
        private ?\Throwable $throwable,
29
    ) {
30
    }
31
32
    public function createBaseLine(
33
        HistoryFactory $historyFactory,
34
        ResultsParser $resultsParser,
35
        BaseLineFileName $baselineFile,
36
        ProjectRoot $projectRoot,
37
        string $analysisResultsAsString,
38
        bool $forceBaselineCreation,
39
    ): BaseLine {
40
        Assert::assertSame($this->expectedHistoryFactory, $historyFactory);
41
        Assert::assertSame($this->expectedResultsParser, $resultsParser);
42
        Assert::assertTrue($this->expectedBaseLineFileName->isEqual($baselineFile));
43
        if (null !== $this->expectedProjectRoot) {
44
            Assert::assertEquals(
45
                $this->expectedProjectRoot->getProjectRootDirectory(),
46
                $projectRoot->getProjectRootDirectory(),
47
            );
48
        }
49
50
        $this->assertSameAllowingExtraNewLine($this->expectedAnalysisResultsAsString, $analysisResultsAsString);
51
52
        if (null !== $this->throwable) {
53
            throw $this->throwable;
54
        }
55
56
        $analysisResults = BaseLineAnalysisResults::fromArray([]);
57
        $historyMarker = new GitCommit('9cf13d75cdf3addb82f507b68f4990725748d7af');
58
59
        return new BaseLine($historyFactory, $analysisResults, $resultsParser, $historyMarker);
60
    }
61
}
62