Passed
Push — master ( aba7e6...19e74c )
by DeGracia
02:51
created

TerminalIntegration::getAvailableCommands()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 15
c 0
b 0
f 0
rs 9.7666
cc 1
nc 1
nop 0
1
<?php
2
3
namespace DeGraciaMathieu\Clike\Tests;
4
5
use Mockery;
6
use PHPUnit\Framework\TestCase;
7
use DeGraciaMathieu\Clike\Terminal;
8
use DeGraciaMathieu\Clike\Exceptions\UnknowCommand;
9
10
class TerminalIntegration extends TestCase {
11
    
12
    /** @test */
13
    public function success()
14
    {
15
        $terminal = $this->makeTerminal();
16
17
        $result = $terminal->execute('/clear');
18
19
        $expectedArray = [
20
            [
21
                'type' => 'info',
22
                'content' => 'Output text...',
23
            ]
24
        ];
25
26
        $this->assertNotNull($result['timestamp']);        
27
        $this->assertEquals($result['lines'], $expectedArray);  
28
    }    
29
30
    /** @test */
31
    public function unknow()
32
    {
33
        $terminal = $this->makeTerminal();
34
35
        $this->expectException(UnknowCommand::class);
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($availableCommands, $expectedArray);  
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