Completed
Branch feature/scrutinizer (a4ecba)
by X
02:31
created

StringParserTest   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 50
Duplicated Lines 100 %

Coupling/Cohesion

Components 0
Dependencies 3

Importance

Changes 0
Metric Value
dl 50
loc 50
rs 10
c 0
b 0
f 0
wmc 2
lcom 0
cbo 3

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
namespace xKerman\Restricted\Test;
4
5
use PHPUnit\Framework\TestCase;
6
7
use xKerman\Restricted\Source;
8
use xKerman\Restricted\StringParser;
9
10
/**
11
 * @coversDefaultClass \xKerman\Restricted\StringParser
12
 */
13
class StringParserTest extends TestCase
14
{
15
    public function provideInvalidData()
16
    {
17
        return [
18
            'empty string' => [
19
                'input' => '',
20
            ],
21
            'non string tag' => [
22
                'input' => 'a:0:"";',
23
            ],
24
            'length is missing' => [
25
                'input' => 's::"";',
26
            ],
27
            'length is not number' => [
28
                'input' => 's:a:"";',
29
            ],
30
            'length is not integer' => [
31
                'input' => 's:1.0:"a";',
32
            ],
33
            'length is negative' => [
34
                'input' => 's:-1:"";',
35
            ],
36
            'no quote' => [
37
                'input' => 's:1:a;',
38
            ],
39
            'open quote exist but close quote not exist' => [
40
                'input' => 's:1:"a;',
41
            ],
42
            'close quote exist but open quote not exist' => [
43
                'input' => 's:1:a";',
44
            ],
45
            'enclosed by single quote' => [
46
                'input' => "s:1:'a';",
47
            ],
48
        ];
49
    }
50
51
    /**
52
     * @covers ::parse
53
     * @dataProvider provideInvalidData
54
     * @expectedException \xKerman\Restricted\UnserializeFailedException
55
     */
56
    public function testParseFailure($input)
57
    {
58
        $source = new Source($input);
59
        $parser = new StringParser();
60
        $parser->parse($source);
61
    }
62
}
63