-
-
Notifications
You must be signed in to change notification settings - Fork 51
/
ConstantEvaluatorTest.php
52 lines (40 loc) · 1.6 KB
/
ConstantEvaluatorTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php
declare(strict_types=1);
namespace phpDocumentor\Reflection\Php\ValueEvaluator;
use phpDocumentor\Reflection\Php\Factory\ContextStack;
use phpDocumentor\Reflection\Php\Project;
use phpDocumentor\Reflection\Types\Context;
use PhpParser\ConstExprEvaluationException;
use PhpParser\Node\Expr\ShellExec;
use PhpParser\Node\Scalar\MagicConst\Namespace_;
use PHPUnit\Framework\TestCase;
/**
* @coversDefaultClass \phpDocumentor\Reflection\Php\ValueEvaluator\ConstantEvaluator
*/
final class ConstantEvaluatorTest extends TestCase
{
/** @covers ::evaluate */
/** @covers ::evaluateFallback */
public function testEvaluateThrowsWhenTypeContextIsNotSet(): void
{
$this->expectException(ConstExprEvaluationException::class);
$evaluator = new ConstantEvaluator();
$evaluator->evaluate(new Namespace_(), new ContextStack(new Project('test')));
}
/** @covers ::evaluate */
/** @covers ::evaluateFallback */
public function testEvaluateThrowsOnUnknownExpression(): void
{
$this->expectException(ConstExprEvaluationException::class);
$evaluator = new ConstantEvaluator();
$result = $evaluator->evaluate(new ShellExec([]), new ContextStack(new Project('test'), new Context('Test')));
}
/** @covers ::evaluate */
/** @covers ::evaluateFallback */
public function testEvaluateReturnsNamespaceFromContext(): void
{
$evaluator = new ConstantEvaluator();
$result = $evaluator->evaluate(new Namespace_(), new ContextStack(new Project('test'), new Context('Test')));
self::assertSame('Test', $result);
}
}