FileWriterTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Importance

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

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getBaseLineFileName() 0 5 1
A setUp() 0 3 1
A testWriteInvalidFile() 0 5 1
A testWriteArrayToFile() 0 4 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DaveLiddament\StaticAnalysisResultsBaseliner\Tests\Unit\Core\File;
6
7
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\Common\BaseLineFileName;
8
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\File\FileAccessException;
9
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\File\FileWriter;
10
use PHPUnit\Framework\TestCase;
11
12
final class FileWriterTest extends TestCase
13
{
14
    /**
15
     * @var FileWriter
16
     */
17
    private $fileWriter;
18
19
    private const DATA = [
20
        'NAME' => 'SARB',
21
    ];
22
23
    protected function setUp(): void
24
    {
25
        $this->fileWriter = new FileWriter();
26
    }
27
28
    /**
29
     * @doesNotPerformAssertions
30
     */
31
    public function testWriteArrayToFile(): void
32
    {
33
        $fileName = $this->getBaseLineFileName('write_file.json');
34
        $this->fileWriter->writeArrayToFile($fileName, self::DATA);
35
    }
36
37
    public function testWriteInvalidFile(): void
38
    {
39
        $fileName = $this->getBaseLineFileName('invaliddirectory/asdfasd/file.json');
40
        $this->expectException(FileAccessException::class);
41
        $this->fileWriter->writeArrayToFile($fileName, self::DATA);
42
    }
43
44
    private function getBaseLineFileName(string $file): BaseLineFileName
45
    {
46
        $fullUrl = __DIR__.'/../../../scratchpad/'.$file;
47
48
        return new BaseLineFileName($fullUrl);
49
    }
50
}
51