Passed
Pull Request — master (#74)
by Peter
07:08
created

runCheckYamlFileIsValid()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 0

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 1
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 0
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 2
ccs 1
cts 1
cp 1
crap 1
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace YamlStandards\Model\YamlEmptyLineAtEnd;
6
7
use SebastianBergmann\Diff\Differ;
8
use YamlStandards\Model\AbstractChecker;
9
use YamlStandards\Model\Config\StandardParametersData;
10
use YamlStandards\Result\Result;
11
12
/**
13
 * Check yaml file has empty line at end of file
14
 */
15
class YamlEmptyLineAtEndChecker extends AbstractChecker
16
{
17
    /**
18
     * @inheritDoc
19
     */
20 4
    public function check(string $pathToFile, StandardParametersData $standardParametersData): Result
21
    {
22 4
        $yamlContent = file_get_contents($pathToFile);
23 4
        $yamlContent = str_replace("\r", '', $yamlContent); // remove carriage returns
24 4
        $yamlLines = explode("\n", $yamlContent);
25
26 4
        $correctYamlLines = YamlEmptyLineAtEndDataFactory::getCorrectYamlContent($yamlLines);
27 4
        $correctYamlContent = implode("\n", $correctYamlLines);
28
29 4
        if ($yamlContent === $correctYamlContent) {
30 3
            return new Result($pathToFile, Result::RESULT_CODE_OK);
31
        }
32
33 1
        $differ = new Differ();
34 1
        $diffBetweenStrings = $differ->diff($yamlContent, $correctYamlContent);
35
36 1
        return new Result($pathToFile, Result::RESULT_CODE_INVALID_FILE_SYNTAX, $diffBetweenStrings, true);
37
    }
38
39
    /**
40
     * @inheritDoc
41
     */
42 2
    protected function runCheckYamlFileIsValid(string $pathToYamlFile): void
43
    {
44 2
    }
45
}
46