TerminalIntegration   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 2
dl 0
loc 60
rs 10
c 0
b 0
f 0

4 Methods

Rating   Name   Duplication   Size   Complexity  
A getAvailableCommands() 0 15 1
A makeTerminal() 0 8 1
A success() 0 16 1
A unknow() 0 9 1
1
<?php
2
3
namespace DeGraciaMathieu\Clike\Tests;
4
5
use PHPUnit\Framework\TestCase;
6
use DeGraciaMathieu\Clike\Terminal;
7
use DeGraciaMathieu\Clike\Exceptions\UnknowCommand;
8
9
class TerminalIntegration extends TestCase {
10
11
    /** @test */
12
    public function success()
13
    {
14
        $terminal = $this->makeTerminal();
15
16
        $result = $terminal->execute('/clear');
17
18
        $expectedArray = [
19
            [
20
                'type' => 'info',
21
                'content' => 'Output text...',
22
            ]
23
        ];
24
25
        $this->assertNotNull($result['timestamp']);
26
        $this->assertEquals($expectedArray, $result['lines']);
27
    }
28
29
    /** @test */
30
    public function unknow()
31
    {
32
        $terminal = $this->makeTerminal();
33
34
        $this->expectException(UnknowCommand::class);
35
        $this->expectExceptionMessage('');
36
37
        $terminal->execute('/unknow_command');
38
    }
39
40
    /** @test */
41
    public function getAvailableCommands()
42
    {
43
        $terminal = $this->makeTerminal();
44
45
        $availableCommands = $terminal->getAvailableCommands();
46
47
        $expectedArray = [
48
            [
49
                'binding' => '/clear',
50
                'description' => 'description',
51
            ]
52
        ];
53
54
        $this->assertEquals($expectedArray, $availableCommands);
55
    }
56
57
    /**
58
     * @return \DeGraciaMathieu\Clike\Terminal
59
     */
60
    protected function makeTerminal()
61
    {
62
        $terminal = new Terminal([
63
            Clear::class,
64
        ]);
65
66
        return $terminal;
67
    }
68
}
69