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

IntegerParserTest::provideInvalidData()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 35
Code Lines 22

Duplication

Lines 35
Ratio 100 %

Importance

Changes 0
Metric Value
cc 1
eloc 22
nc 1
nop 0
dl 35
loc 35
rs 8.8571
c 0
b 0
f 0
1
<?php
2
3
namespace xKerman\Restricted\Test;
4
5
use PHPUnit\Framework\TestCase;
6
7
use xKerman\Restricted\IntegerParser;
8
use xKerman\Restricted\Source;
9
10
class IntegerParserTest extends TestCase
11
{
12
    public function provideInvalidData()
13
    {
14
        return [
15
            'empty string' => [
16
                'input' => '',
17
            ],
18
            'not integer' => [
19
                'input' => 'N;',
20
            ],
21
            'missing tag' => [
22
                'input' => ':0;',
23
            ],
24
            'missing value' => [
25
                'input' => 'i:;',
26
            ],
27
            'missing semicolon' => [
28
                'input' => 'i:0',
29
            ],
30
            'sign only' => [
31
                'input' => 'i:+;',
32
            ],
33
            'multiple sign' => [
34
                'input' => 'i:++6;',
35
            ],
36
            'float value' => [
37
                'input' => 'i:1.0;',
38
            ],
39
            'hex value' => [
40
                'input' => 'i:0x50;',
41
            ],
42
            'binary value' => [
43
                'input' => 'i:0b111;',
44
            ],
45
        ];
46
    }
47
48
    /**
49
     * @covers \xKerman\Restricted\IntegerParser
50
     * @covers \xKerman\Restricted\NumberLiteralParser
51
     * @covers \xKerman\Restricted\NumberStringParser
52
     * @dataProvider provideInvalidData
53
     * @expectedException \xKerman\Restricted\UnserializeFailedException
54
     */
55
    public function testParseFailure($input)
56
    {
57
        $source = new Source($input);
58
        $parser = new IntegerParser();
59
        $parser->parse($source);
60
    }
61
}
62