Passed
Push — master ( 309dcb...6acad1 )
by Petr
02:25
created

StorageTest::testFactoryEmpty()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 2
c 0
b 0
f 0
nc 1
nop 1
dl 0
loc 4
rs 10
1
<?php
2
3
namespace StorageTests;
4
5
6
use CommonTestClass;
7
use kalanis\kw_storage\Storage\Target;
8
9
10
class StorageTest extends CommonTestClass
11
{
12
    public function tearDown(): void
13
    {
14
        $this->rmFile($this->mockTestFile('', false));
15
        $this->rmDir($this->mockTestFile('', false));
16
        parent::tearDown();
17
    }
18
19
    /**
20
     * @param string $what
21
     * @param mixed $in
22
     * @dataProvider factoryFillProvider
23
     */
24
    public function testFactoryFill(string $what, $in): void
25
    {
26
        $factory = new Target\Factory();
27
        $this->assertInstanceOf($what, $factory->getStorage($in));
28
    }
29
30
    public function factoryFillProvider(): array
31
    {
32
        return [
33
            [\TargetMock::class, new \TargetMock()],
34
            [Target\Memory::class, ['storage' => 'mem']],
35
            [Target\Memory::class, ['storage' => 'memory']],
36
            [Target\Volume::class, ['storage' => 'vol']],
37
            [Target\Volume::class, ['storage' => 'volume']],
38
            [Target\Volume::class, ['storage' => 'local']],
39
            [Target\Volume::class, ['storage' => 'drive']],
40
            [Target\VolumeTargetFlat::class, ['storage' => 'volume::flat']],
41
            [Target\VolumeTargetFlat::class, ['storage' => 'local::flat']],
42
            [Target\VolumeTargetFlat::class, ['storage' => 'drive::flat']],
43
            [Target\VolumeStream::class, ['storage' => 'volume::stream']],
44
            [Target\VolumeStream::class, ['storage' => 'local::stream']],
45
            [Target\VolumeStream::class, ['storage' => 'drive::stream']],
46
            [Target\Memory::class, 'mem'],
47
            [Target\Memory::class, 'memory'],
48
            [Target\Volume::class, 'vol'],
49
            [Target\Volume::class, 'volume'],
50
            [Target\Volume::class, 'local'],
51
            [Target\Volume::class, 'drive'],
52
            [Target\VolumeTargetFlat::class, 'volume::flat'],
53
            [Target\VolumeTargetFlat::class, 'local::flat'],
54
            [Target\VolumeTargetFlat::class, 'drive::flat'],
55
            [Target\VolumeStream::class, 'volume::stream'],
56
            [Target\VolumeStream::class, 'local::stream'],
57
            [Target\VolumeStream::class, 'drive::stream'],
58
        ];
59
    }
60
61
    /**
62
     * @param mixed $in
63
     * @dataProvider factoryEmptyProvider
64
     */
65
    public function testFactoryEmpty($in): void
66
    {
67
        $factory = new Target\Factory();
68
        $this->assertEmpty($factory->getStorage($in));
69
    }
70
71
    public function factoryEmptyProvider(): array
72
    {
73
        return [
74
            [[]],
75
            [['storage' => 'none']],
76
            ['none'],
77
            ['what'],
78
            [null],
79
            [false],
80
        ];
81
    }
82
}
83