Passed
Branch master (f7fac8)
by Sebastien
02:47
created

ElementBoolean::test__toString()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
cc 1
eloc 4
c 1
b 1
f 0
nc 1
nop 0
dl 0
loc 6
rs 10
1
<?php
2
3
/**
4
 * @file
5
 *          This file is part of the PdfParser library.
6
 *
7
 * @author  Sébastien MALOT <[email protected]>
8
 * @date    2017-01-03
9
 * @license LGPLv3
10
 * @url     <https://github.com/smalot/pdfparser>
11
 *
12
 *  PdfParser is a pdf library written in PHP, extraction oriented.
13
 *  Copyright (C) 2017 - Sébastien MALOT <[email protected]>
14
 *
15
 *  This program is free software: you can redistribute it and/or modify
16
 *  it under the terms of the GNU Lesser General Public License as published by
17
 *  the Free Software Foundation, either version 3 of the License, or
18
 *  (at your option) any later version.
19
 *
20
 *  This program is distributed in the hope that it will be useful,
21
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
22
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23
 *  GNU Lesser General Public License for more details.
24
 *
25
 *  You should have received a copy of the GNU Lesser General Public License
26
 *  along with this program.
27
 *  If not, see <http://www.pdfparser.org/sites/default/LICENSE.txt>.
28
 *
29
 */
30
31
namespace Smalot\PdfParser\Tests\Units\Element;
32
33
use mageekguy\atoum;
34
35
/**
36
 * Class ElementBoolean
37
 *
38
 * @package Smalot\PdfParser\Tests\Units\Element
39
 */
40
class ElementBoolean extends atoum\test
41
{
42
    public function testParse()
43
    {
44
        // Skipped.
45
        $offset  = 0;
46
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse('ABC', null, $offset);
47
        $this->assert->boolean($element)->isEqualTo(false);
0 ignored issues
show
Bug Best Practice introduced by
The property assert does not exist on Smalot\PdfParser\Tests\U...\Element\ElementBoolean. Since you implemented __get, consider adding a @property annotation.
Loading history...
48
        $this->assert->integer($offset)->isEqualTo(0);
49
        $offset  = 0;
50
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse(' [ false ]', null, $offset);
51
        $this->assert->boolean($element)->isEqualTo(false);
52
        $this->assert->integer($offset)->isEqualTo(0);
53
        $offset  = 0;
54
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse(' << true >>', null, $offset);
55
        $this->assert->boolean($element)->isEqualTo(false);
56
        $this->assert->integer($offset)->isEqualTo(0);
57
        $offset  = 0;
58
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse(' / false ', null, $offset);
59
        $this->assert->boolean($element)->isEqualTo(false);
60
        $this->assert->integer($offset)->isEqualTo(0);
61
        $offset  = 0;
62
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse(' 0 true ', null, $offset);
63
        $this->assert->boolean($element)->isEqualTo(false);
64
        $this->assert->integer($offset)->isEqualTo(0);
65
        $offset  = 0;
66
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse(" 0 \n true ", null, $offset);
67
        $this->assert->boolean($element)->isEqualTo(false);
68
        $this->assert->integer($offset)->isEqualTo(0);
69
70
        // Valid.
71
        $offset  = 0;
72
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse(' true ', null, $offset);
73
        $this->assert->boolean($element->getContent())->isEqualTo(true);
74
        $this->assert->integer($offset)->isEqualTo(5);
75
        $offset  = 0;
76
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse(' TRUE ', null, $offset);
77
        $this->assert->boolean($element->getContent())->isEqualTo(true);
78
        $this->assert->integer($offset)->isEqualTo(5);
79
        $offset  = 0;
80
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse(' True', null, $offset);
81
        $this->assert->boolean($element->getContent())->isEqualTo(true);
82
        $this->assert->integer($offset)->isEqualTo(5);
83
        $offset  = 0;
84
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse('true', null, $offset);
85
        $this->assert->boolean($element->getContent())->isEqualTo(true);
86
        $this->assert->integer($offset)->isEqualTo(4);
87
        $offset  = 0;
88
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse('False', null, $offset);
89
        $this->assert->boolean($element->getContent())->isEqualTo(false);
90
        $this->assert->integer($offset)->isEqualTo(5);
91
        $offset  = 0;
92
        $element = \Smalot\PdfParser\Element\ElementBoolean::parse(" \n true ", null, $offset);
93
        $this->assert->boolean($element->getContent())->isEqualTo(true);
94
        $this->assert->integer($offset)->isEqualTo(7);
95
    }
96
97
    public function testGetContent()
98
    {
99
        $element = new \Smalot\PdfParser\Element\ElementBoolean('true');
100
        $this->assert->boolean($element->getContent())->isEqualTo(true);
0 ignored issues
show
Bug Best Practice introduced by
The property assert does not exist on Smalot\PdfParser\Tests\U...\Element\ElementBoolean. Since you implemented __get, consider adding a @property annotation.
Loading history...
101
        $element = new \Smalot\PdfParser\Element\ElementBoolean('false');
102
        $this->assert->boolean($element->getContent())->isEqualTo(false);
103
    }
104
105
    public function testEquals()
106
    {
107
        $element = new \Smalot\PdfParser\Element\ElementBoolean('true');
108
        $this->assert->boolean($element->equals(true))->isEqualTo(true);
0 ignored issues
show
Bug Best Practice introduced by
The property assert does not exist on Smalot\PdfParser\Tests\U...\Element\ElementBoolean. Since you implemented __get, consider adding a @property annotation.
Loading history...
109
        $this->assert->boolean($element->equals(1))->isEqualTo(false);
110
        $this->assert->boolean($element->equals(false))->isEqualTo(false);
111
        $this->assert->boolean($element->equals(null))->isEqualTo(false);
112
113
        $element = new \Smalot\PdfParser\Element\ElementBoolean('false');
114
        $this->assert->boolean($element->equals(false))->isEqualTo(true);
115
        $this->assert->boolean($element->equals(0))->isEqualTo(false);
116
        $this->assert->boolean($element->equals(true))->isEqualTo(false);
117
        $this->assert->boolean($element->equals(null))->isEqualTo(false);
118
    }
119
120
    public function testContains()
121
    {
122
        $element = new \Smalot\PdfParser\Element\ElementBoolean('true');
123
        $this->assert->boolean($element->contains(true))->isEqualTo(true);
0 ignored issues
show
Bug Best Practice introduced by
The property assert does not exist on Smalot\PdfParser\Tests\U...\Element\ElementBoolean. Since you implemented __get, consider adding a @property annotation.
Loading history...
124
        $this->assert->boolean($element->contains(false))->isEqualTo(false);
125
        $this->assert->boolean($element->contains(1))->isEqualTo(false);
126
    }
127
128
    public function test__toString()
129
    {
130
        $element = new \Smalot\PdfParser\Element\ElementBoolean('true');
131
        $this->assert->castToString($element)->isEqualTo('true');
0 ignored issues
show
Bug Best Practice introduced by
The property assert does not exist on Smalot\PdfParser\Tests\U...\Element\ElementBoolean. Since you implemented __get, consider adding a @property annotation.
Loading history...
132
        $element = new \Smalot\PdfParser\Element\ElementBoolean('false');
133
        $this->assert->castToString($element)->isEqualTo('false');
134
    }
135
}
136