Passed
Push — master ( 8bad73...c5d158 )
by David
57s queued 11s
created

RemoveAssetCommandTest::getInputDefinition()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 0
dl 0
loc 5
rs 10
c 0
b 0
f 0
1
<?php
2
3
4
namespace TheCodingMachine\Discovery\Tests\Commands;
5
6
7
use Symfony\Component\Console\Input\ArrayInput;
8
use Symfony\Component\Console\Input\InputArgument;
9
use Symfony\Component\Console\Input\InputDefinition;
10
use TheCodingMachine\Discovery\Commands\AddAssetCommand;
11
use TheCodingMachine\Discovery\Commands\RemoveAssetCommand;
12
use TheCodingMachine\Discovery\Tests\AbstractDiscoveryTest;
13
14
class RemoveAssetCommandTest extends AbstractDiscoveryTest
15
{
16
    private function getInputDefinition()
17
    {
18
        return new InputDefinition([
19
            new InputArgument('asset-type', InputArgument::REQUIRED),
20
            new InputArgument('value', InputArgument::REQUIRED),
21
        ]);
22
    }
23
24
    public function testRemoveFromLocalFile()
25
    {
26
        if (file_exists('discovery.json')) {
27
            unlink('discovery.json');
28
        }
29
30
        $inputAdd = new ArrayInput([
31
            'asset-type' => 'foo',
32
            'value' => 'bar'
33
        ], AddAssetCommandTest::getInputDefinition());
34
35
        $result = $this->callCommand(new AddAssetCommand(), $inputAdd);
0 ignored issues
show
Unused Code introduced by
The assignment to $result is dead and can be removed.
Loading history...
36
37
        $input = new ArrayInput([
38
            'asset-type' => 'foo',
39
            'value' => 'bar'
40
        ], $this->getInputDefinition());
41
42
        $result = $this->callCommand(new RemoveAssetCommand(), $input);
43
44
        $this->assertFileExists('discovery.json');
45
        $fileContent = file_get_contents('discovery.json');
46
        $this->assertEquals('[]', $fileContent);
47
48
        unlink('discovery.json');
49
    }
50
51
    public function testRemoveNonExistingFromProject()
52
    {
53
        if (file_exists('discovery.json')) {
54
            unlink('discovery.json');
55
        }
56
57
        $input = new ArrayInput([
58
            'asset-type' => 'not-exist',
59
            'value' => 'not-exist'
60
        ], $this->getInputDefinition());
61
62
        $result = $this->callCommand(new RemoveAssetCommand(), $input);
63
64
        $this->assertStringContainsString('There is no asset "not-exist" in asset type "not-exist".', $result);
65
    }
66
67
    public function testRemoveFromProject()
68
    {
69
        if (file_exists('discovery.json')) {
70
            unlink('discovery.json');
71
        }
72
73
        $input = new ArrayInput([
74
            'asset-type' => 'test-asset',
75
            'value' => 'a1'
76
        ], $this->getInputDefinition());
77
78
        $result = $this->callCommand(new RemoveAssetCommand(), $input);
0 ignored issues
show
Unused Code introduced by
The assignment to $result is dead and can be removed.
Loading history...
79
80
        $this->assertFileExists('discovery.json');
81
        $fileContent = file_get_contents('discovery.json');
82
        $fileArray = json_decode($fileContent, true);
83
        $this->assertEquals(['test-asset' => [
84
            "value" => "a1",
85
            "action" => "remove"
86
        ]], $fileArray);
87
88
        unlink('discovery.json');
89
    }
90
91
}
92