FileTest   A
last analyzed

Complexity

Total Complexity 13

Size/Duplication

Total Lines 167
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 9

Importance

Changes 0
Metric Value
dl 0
loc 167
rs 10
c 0
b 0
f 0
wmc 13
lcom 1
cbo 9

13 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 6 1
A tearDown() 0 4 1
A testAddAndGetClasses() 0 9 1
A testAddAndGetConstants() 0 9 1
A testAddAndGetFunctions() 0 9 1
A testAddAndGetInterfaces() 0 9 1
A testAddAndGetTraits() 0 9 1
A testGetDocBlock() 0 4 1
A testGetHash() 0 4 1
A testSetAndGetPath() 0 4 1
A testSetAndGetSource() 0 4 1
A testSetAndGetNamespaceAliases() 0 8 1
A testAddAndGetIncludes() 0 9 1
1
<?php
2
/**
3
 * This file is part of phpDocumentor.
4
 *
5
 * For the full copyright and license information, please view the LICENSE
6
 * file that was distributed with this source code.
7
 *
8
 * @copyright 2010-2018 Mike van Riel<[email protected]>
9
 * @license   http://www.opensource.org/licenses/mit-license.php MIT
10
 * @link      http://phpdoc.org
11
 */
12
13
namespace phpDocumentor\Reflection\Php;
14
15
use \Mockery as m;
16
use phpDocumentor\Reflection\DocBlock;
17
use phpDocumentor\Reflection\Fqsen;
18
use PHPUnit\Framework\TestCase;
19
20
/**
21
 * Tests the functionality for the File class.
22
 *
23
 * @coversDefaultClass phpDocumentor\Reflection\Php\File
24
 */
25
class FileTest extends TestCase
26
{
27
    const EXAMPLE_HASH = 'a-hash-string';
28
29
    const EXAMPLE_PATH = 'a-path-string';
30
31
    const EXAMPLE_SOURCE = 'a-source-string';
32
33
    /** @var File $fixture */
34
    protected $fixture;
35
36
    /**
37
     * @var DocBlock
38
     */
39
    private $docBlock;
40
41
    /**
42
     * Creates a new (emoty) fixture object.
43
     */
44
    protected function setUp()
45
    {
46
        $this->docBlock = new DocBlock('');
47
48
        $this->fixture = new File(static::EXAMPLE_HASH, static::EXAMPLE_PATH, static::EXAMPLE_SOURCE, $this->docBlock);
49
    }
50
51
    protected function tearDown()
52
    {
53
        m::close();
54
    }
55
56
    /**
57
     * @covers ::__construct
58
     * @covers ::getClasses
59
     * @covers ::AddClass
60
     */
61
    public function testAddAndGetClasses()
62
    {
63
        $this->assertEmpty($this->fixture->getClasses());
64
65
        $class = new Class_(new Fqsen('\MySpace\MyClass'));
66
        $this->fixture->addClass($class);
67
68
        $this->assertEquals(['\MySpace\MyClass' => $class], $this->fixture->getClasses());
69
    }
70
71
    /**
72
     * @covers ::__construct
73
     * @covers ::getConstants
74
     * @covers ::addConstant
75
     */
76
    public function testAddAndGetConstants()
77
    {
78
        $this->assertEmpty($this->fixture->getConstants());
79
80
        $constant = new Constant(new Fqsen('\MySpace::MY_CONSTANT'));
81
        $this->fixture->addConstant($constant);
82
83
        $this->assertEquals(['\MySpace::MY_CONSTANT' => $constant], $this->fixture->getConstants());
84
    }
85
86
    /**
87
     * @covers ::__construct
88
     * @covers ::getFunctions
89
     * @covers ::addFunction
90
     */
91
    public function testAddAndGetFunctions()
92
    {
93
        $this->assertEmpty($this->fixture->getFunctions());
94
95
        $function = new Function_(new Fqsen('\MySpace::MyFunction()'));
96
        $this->fixture->addFunction($function);
97
98
        $this->assertEquals(['\MySpace::MyFunction()' => $function], $this->fixture->getFunctions());
99
    }
100
101
    /**
102
     * @covers ::__construct
103
     * @covers ::getInterfaces
104
     * @covers ::addInterface
105
     */
106
    public function testAddAndGetInterfaces()
107
    {
108
        $this->assertEmpty($this->fixture->getInterfaces());
109
110
        $interface = new Interface_(new Fqsen('\MySpace\MyInterface'), []);
111
        $this->fixture->addInterface($interface);
112
113
        $this->assertEquals(['\MySpace\MyInterface' => $interface], $this->fixture->getInterfaces());
114
    }
115
116
    /**
117
     * @covers ::__construct
118
     * @covers ::getTraits
119
     * @covers ::addTrait
120
     */
121
    public function testAddAndGetTraits()
122
    {
123
        $this->assertEmpty($this->fixture->getTraits());
124
125
        $trait = new Trait_(new Fqsen('\MySpace\MyTrait'));
126
        $this->fixture->addTrait($trait);
127
128
        $this->assertEquals(['\MySpace\MyTrait' => $trait], $this->fixture->getTraits());
129
    }
130
131
    /**
132
     * @covers ::__construct
133
     * @covers ::getDocBlock
134
     */
135
    public function testGetDocBlock()
136
    {
137
        $this->assertSame($this->docBlock, $this->fixture->getDocBlock());
138
    }
139
140
    /**
141
     * @covers ::__construct
142
     * @covers ::getHash
143
     */
144
    public function testGetHash()
145
    {
146
        $this->assertSame(self::EXAMPLE_HASH, $this->fixture->getHash());
147
    }
148
149
    /**
150
     * @covers ::getPath
151
     */
152
    public function testSetAndGetPath()
153
    {
154
        $this->assertSame(self::EXAMPLE_PATH, $this->fixture->getPath());
155
    }
156
157
    /**
158
     * @covers ::getSource
159
     */
160
    public function testSetAndGetSource()
161
    {
162
        $this->assertSame(self::EXAMPLE_SOURCE, $this->fixture->getSource());
163
    }
164
165
    /**
166
     * @covers ::addNamespace
167
     * @covers ::getNamespaces
168
     */
169
    public function testSetAndGetNamespaceAliases()
170
    {
171
        $this->assertEmpty($this->fixture->getNamespaces());
172
173
        $this->fixture->addNamespace(new Fqsen('\MyNamepace\Foo'));
174
175
        $this->assertEquals(['\MyNamepace\Foo' => new Fqsen('\MyNamepace\Foo')], $this->fixture->getNamespaces());
176
    }
177
178
    /**
179
     * @covers ::getIncludes
180
     * @covers ::addInclude
181
     */
182
    public function testAddAndGetIncludes()
183
    {
184
        $this->assertEmpty($this->fixture->getIncludes());
185
186
        $include = static::EXAMPLE_PATH;
187
        $this->fixture->addInclude($include);
188
189
        $this->assertSame([static::EXAMPLE_PATH => static::EXAMPLE_PATH], $this->fixture->getIncludes());
190
    }
191
}
192