FileRobotStoreTest::canPersistAndRetrieveARobot()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 15
rs 9.7666
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
/**
3
 * (c) 2018 Douglas Reith.
4
 *
5
 * For the full copyright and license information, please view the LICENSE
6
 * file that was distributed with this source code.
7
 */
8
declare(strict_types=1);
9
10
namespace Reith\ToyRobot\Infrastructure\Persistence;
11
12
use PHPUnit\Framework\TestCase;
13
use org\bovigo\vfs\vfsStream;
14
use Reith\ToyRobot\Domain\Space\Table;
15
use Reith\ToyRobot\Domain\Robot\Robot;
16
17
class FileRobotStoreTest extends TestCase
18
{
19
    /**
20
     * @test
21
     */
22
    public static function canCreateAStore()
23
    {
24
        $basePath = vfsStream::setup('basePath');
25
26
        self::assertFalse($basePath->hasChild('robotstore'));
27
28
        $store = FileRobotStore::getStore(vfsStream::url('basePath'));
29
30
        self::assertTrue($basePath->hasChild('robotstore'));
31
32
        $version = '001';
33
        $fileName = $version . '-robot.txt';
34
35
        $robotStorePath = $basePath->getChild('robotstore');
36
        self::assertTrue($robotStorePath->hasChild($fileName));
37
38
        self::assertInstanceOf(FileRobotStore::class, $store);
39
    }
40
41
    /**
42
     * @test
43
     */
44
    public static function canPersistAndRetrieveARobot()
45
    {
46
        self::markTestSkipped('Issue with the vfsStream mock filesystem and SplFileObject');
47
48
        $basePath = vfsStream::setup('basePath');
0 ignored issues
show
Unused Code introduced by
$basePath is not used, you could remove the assignment.

This check looks for variable assignements that are either overwritten by other assignments or where the variable is not used subsequently.

$myVar = 'Value';
$higher = false;

if (rand(1, 6) > 3) {
    $higher = true;
} else {
    $higher = false;
}

Both the $myVar assignment in line 1 and the $higher assignment in line 2 are dead. The first because $myVar is never used and the second because $higher is always overwritten for every possible time line.

Loading history...
49
        $store = FileRobotStore::getStore(vfsStream::url('basePath'));
50
51
        $robot = Table::create(5)->placeRobot();
52
53
        $store->saveRobot($robot);
54
55
        $persistedRobot = $store->getRobot();
56
57
        self::assertInstanceOf(Robot::class, $persistedRobot);
58
    }
59
}
60