Passed
Branch master (e8fd46)
by Alexey
02:50
created

CommandCollectorTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 0
Metric Value
dl 0
loc 38
rs 10
c 0
b 0
f 0
wmc 3
lcom 0
cbo 5
1
<?php
2
3
use PHPUnit\Framework\TestCase;
4
use Venta\Console\Command\CommandCollector;
5
use Venta\Contracts\Container\Container;
6
7
class CommandCollectorTest extends TestCase
8
{
9
10
    public function tearDown()
11
    {
12
        Mockery::close();
13
    }
14
15
    /**
16
     * @test
17
     */
18
    public function canCollectCommands()
19
    {
20
        $container = Mockery::mock(Container::class);
21
        $mock = Mockery::mock(MockCommand::class);
22
        $container->shouldReceive('get')->with(MockCommand::class)->andReturn($mock)->once();
23
24
        $collector = new CommandCollector();
25
        $collector->setContainer($container);
26
        $collector->addCommand(MockCommand::class);
27
        $result = $collector->getCommands();
28
29
        $this->assertSame([$mock], $result);
30
    }
31
32
    /**
33
     * @test
34
     */
35
    public function canHandleInvalidCommandClassName()
36
    {
37
        $this->expectException(InvalidArgumentException::class);
38
        $this->expectExceptionMessage('Provided command "stdClass" doesn\'t extend Venta\Console\Command class.');
39
40
        $collector = new CommandCollector(Mockery::mock(Container::class));
41
        $collector->addCommand(stdClass::class);
42
    }
43
44
}
45