CreateFileTest::setUp()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 8
rs 9.4285
cc 2
eloc 4
nc 1
nop 0
1
<?php
2
/**
3
 * @author     Chris Hilsdon <[email protected]>
4
 * @package    ComodoDecodeCSR
5
 * @copyright  2016 Xigen
6
 * @license    GNU General Public License v3
7
 * @link       https://github.com/XigenChris/ComodoDecodeCSR
8
 */
9
10
namespace Xigen\Tests\Console;
11
12
use Xigen\ComodoDecodeCSR;
13
use Xigen\Tests\XigenUnit;
14
use Xigen\Console\CreateFile;
15
use Symfony\Component\Console\Tester\CommandTester;
16
17
class CreateFileTest extends XigenUnit
18
{
19
    protected $ComodoDecodeCSR;
20
21
    public function setUp()
22
    {
23
        register_shutdown_function(function () {
24
            if (file_exists('test.csr')) {
25
                unlink('test.csr');
26
            }
27
        });
28
    }
29
30 View Code Duplication
    public function testNoCSR()
31
    {
32
        $command = new CreateFile();
33
        $tester = new CommandTester($command);
34
35
        try {
36
            $tester->execute([]);
37
        } catch (\Exception $e) {
38
            $this->assertEmpty($tester->getDisplay(), "Message wan't empty");
39
            $this->assertSame($e->getMessage(), 'Not enough arguments (missing: "csr").');
40
        }
41
    }
42
43 View Code Duplication
    public function testWithBadCSR()
44
    {
45
        $command = new CreateFile();
46
        $tester = new CommandTester($command);
47
48
        //Create an empty
49
        file_put_contents('test.csr', '', FILE_APPEND | LOCK_EX);
50
51
        $tester->execute([
52
            'csr' => 'test.csr'
53
        ]);
54
55
        $this->assertSame($tester->getStatusCode(), (int) 3);
56
        $this->assertRegExp('/Error!/', $tester->getDisplay());
57
    }
58
59
    public function testWithCorrectCSR()
60
    {
61
        $command = new CreateFile();
62
        $tester = new CommandTester($command);
63
        $tester->execute([
64
            'csr' => 'certificate/test.csr'
65
        ]);
66
67
        $this->assertSame($tester->getStatusCode(), (int) 0);
68
        $lines = $this->getOutputLines($tester->getDisplay());
69
70
        $this->assertRegExp('/Filename: [a-f0-9]{32}.txt/i', $lines[0]);
71
        $this->assertSame('Contents:', $lines[1]);
72
        $this->assertRegExp('/[0-9a-f]{5,40}/i', $lines[2]);
73
        $this->assertSame('comodoca.com', $lines[3]);
74
        $this->assertRegExp('/URL: http:\/\/comododecodecsr.tk\/[a-f0-9]{32}.txt/i', $lines[5]);
75
    }
76
}
77