DeleteClassifierCommandTest::testCommand()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 23
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 23
rs 9.0856
cc 1
eloc 15
nc 1
nop 0
1
<?php
2
3
namespace Bobbyshaw\WatsonVisualRecognition\Tests\Commands;
4
5
use Bobbyshaw\WatsonVisualRecognition\Client;
6
use Bobbyshaw\WatsonVisualRecognition\Commands\DeleteClassifierCommand;
7
use Bobbyshaw\WatsonVisualRecognition\Tests\Base;
8
use GuzzleHttp\Psr7\Response;
9
use Symfony\Component\Console\Input\ArrayInput;
10
use Symfony\Component\Console\Output\BufferedOutput;
11
12
class DeleteClassifierCommandTest extends Base
13
{
14
    /**
15
     * Test that the command outputs a success info message.
16
     */
17
    public function testCommand()
18
    {
19
        $container = [];
20
        $httpClient = $this->getMockHttpClientWithHistoryAndResponses($container, [new Response(200, [], '{}')]);
21
22
        $arguments = [
23
            'username' => 'test',
24
            'password' => 'test',
25
            'classifier_id' => 'Magenta',
26
            '--version-date' => '2016-01-01',
27
        ];
28
        $input = new ArrayInput($arguments);
29
        $output = new BufferedOutput();
30
31
        $command = new DeleteClassifierCommand(null, new Client($httpClient));
32
        $command->run($input, $output);
33
34
        $this->assertEquals('classifier:delete', $command->getName());
35
36
        $correctOutput = file_get_contents('Tests/Mock/Commands/DeleteClassifierSuccess.txt');
37
38
        $this->assertEquals($correctOutput, $output->fetch());
39
    }
40
41 View Code Duplication
    public function testCommandFail()
42
    {
43
        $container = [];
44
        $response = $this->getMockHttpResponse('DeleteClassifierFail.txt');
45
        $httpClient = $this->getMockHttpClientWithHistoryAndResponses($container, [$response]);
46
47
        $arguments = [
48
            'username' => 'test',
49
            'password' => 'test',
50
            'classifier_id' => 'Sunset',
51
            '--version-date' => '2016-01-01',
52
        ];
53
        $input = new ArrayInput($arguments);
54
        $output = new BufferedOutput();
55
56
        $command = new DeleteClassifierCommand(null, new Client($httpClient));
57
        $command->run($input, $output);
58
59
        $this->assertEquals('classifier:delete', $command->getName());
60
61
        $this->assertEquals("Cannot delete classifier: Sunset\n", $output->fetch());
62
    }
63
}
64