Test Failed
Push — master ( 819fb3...4760ed )
by Chris
14:15 queued 07:18
created

CreateFileTest   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 60
Duplicated Lines 45 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 6
c 1
b 0
f 0
lcom 1
cbo 3
dl 27
loc 60
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 8 2
A testNoCSR() 12 12 2
A testWithBadCSR() 15 15 1
A testWithCorrectCSR() 0 17 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

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