AnalysisResultTest::testHappyPath()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 23
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 16
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 23
rs 9.7333
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DaveLiddament\StaticAnalysisResultsBaseliner\Tests\Unit\Core\ResultsParser;
6
7
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\AbsoluteFileName;
8
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\LineNumber;
9
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\Location;
10
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\ProjectRoot;
11
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\Severity;
12
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\Type;
13
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\ResultsParser\AnalysisResult;
14
use PHPUnit\Framework\TestCase;
15
16
final class AnalysisResultTest extends TestCase
17
{
18
    private const FILE_NAME = '/tmp/foo.php';
19
    private const LINE_NUMBER = 10;
20
    private const TYPE = 'TYPE';
21
    private const MESSAGE = 'message';
22
    private const FULL_DETAILS = [
23
        'snippet' => 'class Foo',
24
    ];
25
26
    public function testHappyPath(): void
27
    {
28
        $projectRoot = ProjectRoot::fromCurrentWorkingDirectory('/');
29
30
        $location = Location::fromAbsoluteFileName(
31
            new AbsoluteFileName(self::FILE_NAME),
32
            $projectRoot,
33
            new LineNumber(self::LINE_NUMBER),
34
        );
35
36
        $analysisResult = new AnalysisResult(
37
            $location,
38
            new Type(self::TYPE),
39
            self::MESSAGE,
40
            self::FULL_DETAILS,
41
            Severity::error(),
42
        );
43
44
        $this->assertSame(self::FILE_NAME, $analysisResult->getLocation()->getAbsoluteFileName()->getFileName());
45
        $this->assertSame(self::LINE_NUMBER, $analysisResult->getLocation()->getLineNumber()->getLineNumber());
46
        $this->assertSame(self::TYPE, $analysisResult->getType()->getType());
47
        $this->assertSame(self::MESSAGE, $analysisResult->getMessage());
48
        $this->assertSame(self::FULL_DETAILS, $analysisResult->getFullDetails());
49
    }
50
}
51