ScalarCompilerTest::testPassInteger()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 9
rs 9.9666
c 0
b 0
f 0
1
<?php
2
3
namespace Tests\PHPSA\Compiler\Expression;
4
5
use PhpParser\Node;
6
use PHPSA\CompiledExpression;
7
use PHPSA\Compiler\Expression;
8
use PHPSA\Compiler\Expression\Operators\UnaryMinus;
9
10
/**
11
 * Class ExpressionCompilerTest
12
 * @package Tests\PHPSA\Expression\BinaryOp
13
 */
14
class ScalarCompilerTest extends \Tests\PHPSA\TestCase
15
{
16
    public function testPassInteger()
17
    {
18
        $scalar = $this->newScalarExpr(1);
19
        $compiledExpression = $this->compileExpression($scalar, $this->getContext());
20
        self::assertInstanceOfCompiledExpression($compiledExpression);
21
22
        self::assertSame(CompiledExpression::INTEGER, $compiledExpression->getType());
23
        self::assertSame($scalar->value, $compiledExpression->getValue());
24
    }
25
26
    public function testPassDouble()
27
    {
28
        $scalar = $this->newScalarExpr(1.0);
29
        $compiledExpression = $this->compileExpression($scalar, $this->getContext());
30
        self::assertInstanceOfCompiledExpression($compiledExpression);
31
32
        self::assertSame(CompiledExpression::DOUBLE, $compiledExpression->getType());
33
        self::assertSame($scalar->value, $compiledExpression->getValue());
34
    }
35
36
    public function testPassBooleanTrue()
37
    {
38
        $scalar = $this->newScalarExpr(true);
39
        $compiledExpression = $this->compileExpression($scalar, $this->getContext());
40
        self::assertInstanceOfCompiledExpression($compiledExpression);
41
42
        self::assertSame(CompiledExpression::BOOLEAN, $compiledExpression->getType());
43
        self::assertSame($scalar->value, $compiledExpression->getValue());
44
    }
45
46
    public function testPassBooleanFalse()
47
    {
48
        $scalar = $this->newScalarExpr(false);
49
        $compiledExpression = $this->compileExpression($scalar, $this->getContext());
50
        self::assertInstanceOfCompiledExpression($compiledExpression);
51
52
        self::assertSame(CompiledExpression::BOOLEAN, $compiledExpression->getType());
53
        self::assertSame($scalar->value, $compiledExpression->getValue());
54
    }
55
56
    public function testPassString()
57
    {
58
        $scalar = $this->newScalarExpr("test string");
59
        $compiledExpression = $this->compileExpression($scalar, $this->getContext());
60
        self::assertInstanceOfCompiledExpression($compiledExpression);
61
62
        self::assertSame(CompiledExpression::STRING, $compiledExpression->getType());
63
        self::assertSame($scalar->value, $compiledExpression->getValue());
64
    }
65
66
    public function testPassNull()
67
    {
68
        $scalar = $this->newScalarExpr(null);
69
        $compiledExpression = $this->compileExpression($scalar, $this->getContext());
70
        self::assertInstanceOfCompiledExpression($compiledExpression);
71
72
        self::assertSame(CompiledExpression::NULL, $compiledExpression->getType());
73
        self::assertSame($scalar->value, $compiledExpression->getValue());
74
    }
75
}
76