Skip to content

Commit 1fead6a

Browse files
committed
Improves test coverage
1 parent bc56747 commit 1fead6a

File tree

2 files changed

+79
-3
lines changed

2 files changed

+79
-3
lines changed

src/FqsenResolver.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class FqsenResolver
1919
/** @var string Definition of the NAMESPACE operator in PHP */
2020
const OPERATOR_NAMESPACE = '\\';
2121

22-
public function resolve($fqsen, Context $context = null)
22+
public function resolve($fqsen, Context $context = null): Fqsen
2323
{
2424
if ($context === null) {
2525
$context = new Context('');
@@ -39,7 +39,7 @@ public function resolve($fqsen, Context $context = null)
3939
*
4040
* @return bool
4141
*/
42-
private function isFqsen($type)
42+
private function isFqsen($type): bool
4343
{
4444
return strpos($type, self::OPERATOR_NAMESPACE) === 0;
4545
}
@@ -52,7 +52,7 @@ private function isFqsen($type)
5252
* @return Fqsen
5353
* @throws \InvalidArgumentException when type is not a valid FQSEN.
5454
*/
55-
private function resolvePartialStructuralElementName($type, Context $context)
55+
private function resolvePartialStructuralElementName($type, Context $context): Fqsen
5656
{
5757
$typeParts = explode(self::OPERATOR_NAMESPACE, $type, 2);
5858

tests/unit/FqsenResolverTest.php

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
<?php
2+
3+
namespace phpDocumentor\Reflection\unit;
4+
5+
use phpDocumentor\Reflection\FqsenResolver;
6+
use phpDocumentor\Reflection\Types\Context;
7+
use PHPUnit\Framework\TestCase;
8+
9+
/**
10+
* @coversDefaultClass \phpDocumentor\Reflection\FqsenResolver
11+
* @covers ::<private>
12+
*/
13+
class FqsenResolverTest extends TestCase
14+
{
15+
/**
16+
* @covers ::resolve
17+
*/
18+
public function testResolveFqsen()
19+
{
20+
$fqsenResolver = new FqsenResolver();
21+
22+
$context = new Context('', []);
23+
24+
$result = $fqsenResolver->resolve('\DocBlock', $context);
25+
static::assertEquals('\DocBlock', (string)$result);
26+
}
27+
28+
/**
29+
* @covers ::resolve
30+
*/
31+
public function testResolveWithoutContext()
32+
{
33+
$fqsenResolver = new FqsenResolver();
34+
35+
$result = $fqsenResolver->resolve('\DocBlock');
36+
static::assertEquals('\DocBlock', (string)$result);
37+
}
38+
39+
/**
40+
* @covers ::resolve
41+
*/
42+
public function testResolveFromAlias()
43+
{
44+
$fqsenResolver = new FqsenResolver();
45+
46+
$context = new Context('somens', ['ns' => 'some\other\ns']);
47+
48+
$result = $fqsenResolver->resolve('ns', $context);
49+
static::assertEquals('\some\other\ns', (string)$result);
50+
}
51+
52+
/**
53+
* @covers ::resolve
54+
*/
55+
public function testResolveFromPartialAlias()
56+
{
57+
$fqsenResolver = new FqsenResolver();
58+
59+
$context = new Context('somens', ['other' => 'some\other']);
60+
61+
$result = $fqsenResolver->resolve('other\ns', $context);
62+
static::assertEquals('\some\other\ns', (string)$result);
63+
}
64+
65+
/**
66+
* @expectedException \InvalidArgumentException
67+
*/
68+
public function testResolveThrowsExceptionWhenGarbageInputIsPassed()
69+
{
70+
$fqsenResolver = new FqsenResolver();
71+
72+
$context = new Context('', []);
73+
74+
$fqsenResolver->resolve('this is complete garbage', $context);
75+
}
76+
}

0 commit comments

Comments
 (0)