Skip to content

Commit dbb381a

Browse files
committed
Added tests
1 parent 332e6dd commit dbb381a

13 files changed

+141
-42
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
3+
namespace UnitTest\PhpDocReader\Fixtures;
4+
5+
use UnitTest\PhpDocReader\Fixtures\Class3 as ClassClass3;
6+
7+
class Class1
8+
{
9+
public $propNone;
10+
11+
/**
12+
* @var \UnitTest\PhpDocReader\Fixtures\Class2
13+
*/
14+
public $propFQN;
15+
16+
/**
17+
* @var Class2
18+
*/
19+
public $propLocalName;
20+
21+
/**
22+
* @var ClassClass3
23+
*/
24+
public $propAlias;
25+
26+
/**
27+
* @param $paramNone
28+
* @param \UnitTest\PhpDocReader\Fixtures\Class2 $paramFQN
29+
* @param Class2 $paramLocalName
30+
* @param ClassClass3 $paramAlias
31+
*/
32+
public function foo($paramNone, $paramFQN, $paramLocalName, $paramAlias)
33+
{
34+
}
35+
}

tests/UnitTest/PhpDocReader/Fixtures/SomeDependencyFixture.php renamed to tests/UnitTest/PhpDocReader/Fixtures/Class2.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace UnitTest\PhpDocReader\Fixtures;
44

5-
class SomeDependencyFixture
5+
class Class2
66
{
7-
87
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?php
2+
3+
namespace UnitTest\PhpDocReader\Fixtures;
4+
5+
class Class3
6+
{
7+
}

tests/UnitTest/PhpDocReader/Fixtures/Subspace/SomeDependencyFixture.php

Lines changed: 0 additions & 8 deletions
This file was deleted.

tests/UnitTest/PhpDocReader/Fixtures/Subspace/SomeDependencyFixture2.php

Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace UnitTest\PhpDocReader\FixturesIssue87;
4+
5+
class SomeDependencyFixture
6+
{
7+
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace UnitTest\PhpDocReader\FixturesIssue87\Subspace;
4+
5+
class SomeDependencyFixture
6+
{
7+
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
namespace UnitTest\PhpDocReader\FixturesIssue87\Subspace;
4+
5+
class SomeDependencyFixture2
6+
{
7+
8+
}

tests/UnitTest/PhpDocReader/Fixtures/TargetFixture1.php renamed to tests/UnitTest/PhpDocReader/FixturesIssue87/TargetFixture1.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php
22

3-
namespace UnitTest\PhpDocReader\Fixtures;
3+
namespace UnitTest\PhpDocReader\FixturesIssue87;
44

5-
use UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture;
5+
use UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture;
66

77
/**
88
* Has a dependency locally aliased from another namespace

tests/UnitTest/PhpDocReader/Fixtures/TargetFixture2.php renamed to tests/UnitTest/PhpDocReader/FixturesIssue87/TargetFixture2.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?php
22

3-
namespace UnitTest\PhpDocReader\Fixtures;
3+
namespace UnitTest\PhpDocReader\FixturesIssue87;
44

5-
use UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture2 as SomeDependencyFixture;
5+
use UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture2 as SomeDependencyFixture;
66

77
/**
88
* Has a dependency locally aliased to a name in the local namespace of the targets

tests/UnitTest/PhpDocReader/Fixtures/TargetFixture3.php renamed to tests/UnitTest/PhpDocReader/FixturesIssue87/TargetFixture3.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace UnitTest\PhpDocReader\Fixtures;
3+
namespace UnitTest\PhpDocReader\FixturesIssue87;
44

55
/**
66
* Has a dependency in the local namespace
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
3+
namespace UnitTest\PhpDocReader;
4+
5+
use PhpDocReader\PhpDocReader;
6+
use ReflectionParameter;
7+
use ReflectionProperty;
8+
9+
/**
10+
* Functional tests
11+
*/
12+
class FunctionalTest extends \PHPUnit_Framework_TestCase
13+
{
14+
public function testReadPropertyType()
15+
{
16+
$parser = new PhpDocReader();
17+
18+
$className = 'UnitTest\PhpDocReader\Fixtures\Class1';
19+
20+
$type = $parser->getPropertyType(new ReflectionProperty($className, 'propNone'));
21+
$this->assertNull($type);
22+
23+
$type = $parser->getPropertyType(new ReflectionProperty($className, 'propFQN'));
24+
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Class2', $type);
25+
26+
$type = $parser->getPropertyType(new ReflectionProperty($className, 'propLocalName'));
27+
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Class2', $type);
28+
29+
$type = $parser->getPropertyType(new ReflectionProperty($className, 'propAlias'));
30+
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Class3', $type);
31+
}
32+
33+
public function testReadParamType()
34+
{
35+
$parser = new PhpDocReader();
36+
37+
$method = array('UnitTest\PhpDocReader\Fixtures\Class1', 'foo');
38+
39+
$type = $parser->getParameterType(new ReflectionParameter($method, 'paramNone'));
40+
$this->assertNull($type);
41+
42+
$type = $parser->getParameterType(new ReflectionParameter($method, 'paramFQN'));
43+
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Class2', $type);
44+
45+
$type = $parser->getParameterType(new ReflectionParameter($method, 'paramLocalName'));
46+
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Class2', $type);
47+
48+
$type = $parser->getParameterType(new ReflectionParameter($method, 'paramAlias'));
49+
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Class3', $type);
50+
}
51+
}

tests/UnitTest/PhpDocReader/Issue87Test.php

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace UnitTest\PhpDocReader;
44

5-
use Doctrine\Common\Annotations\Annotation\Target;
65
use PhpDocReader\PhpDocReader;
76

87
/**
@@ -18,7 +17,7 @@ public function testGetParameterTypeUseStatementBeforeLocalNamespace()
1817
{
1918
$parser = new PhpDocReader();
2019

21-
$target1 = new Fixtures\TargetFixture1();
20+
$target1 = new FixturesIssue87\TargetFixture1();
2221

2322
$target1ReflectionClass = new \ReflectionClass($target1);
2423
$target1ReflectionMethod = $target1ReflectionClass->getMethod("SomeMethod");
@@ -27,17 +26,17 @@ public function testGetParameterTypeUseStatementBeforeLocalNamespace()
2726
$result = $parser->getParameterType($target1ReflectionParams[0]);
2827

2928
//Since TargetFixture1 file has a use statement to the Subspace namespace, that's the one that should be returned
30-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture', $result);
29+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture', $result);
3130

3231

3332
$result = $parser->getParameterType($target1ReflectionParams[1]);
3433

3534
//this parameter should be unaffected by use namespace since it has a relative type path
36-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture2', $result);
35+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture2', $result);
3736

3837

3938

40-
$target2 = new Fixtures\TargetFixture2();
39+
$target2 = new FixturesIssue87\TargetFixture2();
4140

4241
$target2ReflectionClass = new \ReflectionClass($target2);
4342
$target2ReflectionMethod = $target2ReflectionClass->getMethod("SomeMethod");
@@ -46,17 +45,17 @@ public function testGetParameterTypeUseStatementBeforeLocalNamespace()
4645
$result = $parser->getParameterType($target2ReflectionParams[0]);
4746

4847
//Since TargetFixture2 file has a use statement with an alias to the Subspace namespace, that's the one that should be returned
49-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture2', $result);
48+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture2', $result);
5049

5150

5251
$result = $parser->getParameterType($target2ReflectionParams[1]);
5352

5453
//this parameter should be unaffected by use namespace since it has a relative type path
55-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture2', $result);
54+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture2', $result);
5655

5756

5857

59-
$target3 = new Fixtures\TargetFixture3();
58+
$target3 = new FixturesIssue87\TargetFixture3();
6059

6160
$target3ReflectionClass = new \ReflectionClass($target3);
6261
$target3ReflectionMethod = $target3ReflectionClass->getMethod("SomeMethod");
@@ -65,13 +64,13 @@ public function testGetParameterTypeUseStatementBeforeLocalNamespace()
6564
$result = $parser->getParameterType($target3ReflectionParams[0]);
6665

6766
//Since TargetFixture3 file has NO use statement, the one local to the target's namespace should be used
68-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\SomeDependencyFixture', $result);
67+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\SomeDependencyFixture', $result);
6968

7069

7170
$result = $parser->getParameterType($target3ReflectionParams[1]);
7271

7372
//this parameter should be unaffected by use namespace since it has a relative type path
74-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture2', $result);
73+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture2', $result);
7574
}
7675

7776

@@ -83,62 +82,62 @@ public function testGetPropertyTypeUseStatementBeforeLocalNamespace()
8382
{
8483
$parser = new PhpDocReader();
8584

86-
$target1 = new Fixtures\TargetFixture1();
85+
$target1 = new FixturesIssue87\TargetFixture1();
8786

8887
$target1ReflectionClass = new \ReflectionClass($target1);
8988
$target1ReflectionProperty1 = $target1ReflectionClass->getProperty("dependency1");
9089

9190
$result = $parser->getPropertyType($target1ReflectionProperty1);
9291

9392
//Since TargetFixture1 file has a use statement to the Subspace namespace, that's the one that should be returned
94-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture', $result);
93+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture', $result);
9594

9695

9796
$target1ReflectionProperty2 = $target1ReflectionClass->getProperty("dependency2");
9897

9998
$result = $parser->getPropertyType($target1ReflectionProperty2);
10099

101100
//this property should be unaffected by use namespace since it has a relative type path
102-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture2', $result);
101+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture2', $result);
103102

104103

105104

106-
$target2 = new Fixtures\TargetFixture2();
105+
$target2 = new FixturesIssue87\TargetFixture2();
107106

108107
$target2ReflectionClass = new \ReflectionClass($target2);
109108
$target2ReflectionProperty1 = $target2ReflectionClass->getProperty("dependency1");
110109

111110
$result = $parser->getPropertyType($target2ReflectionProperty1);
112111

113112
//Since TargetFixture2 file has a use statement with an alias to the Subspace namespace, that's the one that should be returned
114-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture2', $result);
113+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture2', $result);
115114

116115

117116
$target2ReflectionProperty2 = $target2ReflectionClass->getProperty("dependency2");
118117

119118
$result = $parser->getPropertyType($target2ReflectionProperty2);
120119

121120
//this property should be unaffected by use namespace since it has a relative type path
122-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture2', $result);
121+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture2', $result);
123122

124123

125124

126-
$target3 = new Fixtures\TargetFixture3();
125+
$target3 = new FixturesIssue87\TargetFixture3();
127126

128127
$target3ReflectionClass = new \ReflectionClass($target3);
129128
$target3ReflectionProperty1 = $target3ReflectionClass->getProperty("dependency1");
130129

131130
$result = $parser->getPropertyType($target3ReflectionProperty1);
132131

133132
//Since TargetFixture3 file has NO use statement, the one local to the target's namespace should be used
134-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\SomeDependencyFixture', $result);
133+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\SomeDependencyFixture', $result);
135134

136135

137136
$target3ReflectionProperty2 = $target3ReflectionClass->getProperty("dependency2");
138137

139138
$result = $parser->getPropertyType($target3ReflectionProperty2);
140139

141140
//this property should be unaffected by use namespace since it has a relative type path
142-
$this->assertEquals('UnitTest\PhpDocReader\Fixtures\Subspace\SomeDependencyFixture2', $result);
141+
$this->assertEquals('UnitTest\PhpDocReader\FixturesIssue87\Subspace\SomeDependencyFixture2', $result);
143142
}
144143
}

0 commit comments

Comments
 (0)