Exemple #1
0
 public function testFromZvalNull()
 {
     $result = CompiledExpression::fromZvalValue(null);
     parent::assertInstanceOfCompiledExpression($result);
     parent::assertSame(CompiledExpression::NULL, $result->getType());
     parent::assertSame(null, $result->getValue());
 }
Exemple #2
0
 public function testEvalOpSuccess()
 {
     $baseExpression = new Node\Expr\Eval_($this->newScalarExpr("echo 'test';"));
     $compiledExpression = $this->compileExpression($baseExpression);
     parent::assertInstanceOfCompiledExpression($compiledExpression);
     parent::assertSame(CompiledExpression::NULL, $compiledExpression->getType());
     parent::assertSame(null, $compiledExpression->getValue());
 }
Exemple #3
0
 public function testExitOpSuccess()
 {
     $baseExpression = new Node\Expr\Exit_($this->newScalarExpr("test"));
     $compiledExpression = $this->compileExpression($baseExpression);
     parent::assertInstanceOfCompiledExpression($compiledExpression);
     parent::assertSame(CompiledExpression::STRING, $compiledExpression->getType());
     parent::assertSame("test", $compiledExpression->getValue());
 }
Exemple #4
0
 public function testErrorSuppressSuccess()
 {
     $baseExpression = new Node\Expr\ErrorSuppress(new Node\Expr\Print_($this->newScalarExpr("test")));
     $compiledExpression = $this->compileExpression($baseExpression);
     parent::assertInstanceOfCompiledExpression($compiledExpression);
     parent::assertSame(CompiledExpression::INTEGER, $compiledExpression->getType());
     parent::assertSame(1, $compiledExpression->getValue());
 }
Exemple #5
0
 public function testTernaryFalse()
 {
     // (2 == 3) ? "if" : "else"
     $baseExpression = new Node\Expr\Ternary(new Node\Expr\BinaryOp\Equal($this->newScalarExpr(2), $this->newScalarExpr(3)), $this->newScalarExpr("if"), $this->newScalarExpr("else"));
     $compiledExpression = $this->compileExpression($baseExpression);
     parent::assertInstanceOfCompiledExpression($compiledExpression);
     parent::assertSame(CompiledExpression::STRING, $compiledExpression->getType());
     parent::assertSame("else", $compiledExpression->getValue());
 }
Exemple #6
0
 public function testEmptyVarNotExisting()
 {
     $context = $this->getContext();
     $baseExpression = new Node\Expr\Empty_(new Node\Expr\Variable(new Node\Name("name")));
     $compiledExpression = $this->compileExpression($baseExpression, $context);
     parent::assertInstanceOfCompiledExpression($compiledExpression);
     parent::assertSame(CompiledExpression::BOOLEAN, $compiledExpression->getType());
     parent::assertFalse($compiledExpression->getValue());
 }
Exemple #7
0
 public function testCoalesceVarNotExisting()
 {
     $context = $this->getContext();
     $variable = new VariableNode(new Name("name"));
     $else = parent::newScalarExpr("else");
     $baseExpression = new Node\Expr\BinaryOp\Coalesce($variable, $else);
     $compiledExpression = $this->compileExpression($baseExpression, $context);
     parent::assertInstanceOfCompiledExpression($compiledExpression);
     parent::assertSame(CompiledExpression::STRING, $compiledExpression->getType());
     parent::assertSame("else", $compiledExpression->getValue());
 }
 public function testFindYieldStatement()
 {
     $returnStatement = new \PhpParser\Node\Expr\Yield_();
     parent::assertSame([$returnStatement], iterator_to_array($this->findYieldExpression([$returnStatement])));
 }
Exemple #9
0
 /**
  * @dataProvider typesAsStringProvider
  */
 public function testGetType($typeAsString, $expectedType)
 {
     parent::assertSame($expectedType, Types::getType($typeAsString));
 }
Exemple #10
0
 public function testGetTypeName()
 {
     $int = new Variable('a', 1, CompiledExpression::INTEGER);
     parent::assertSame("integer", $int->getTypeName());
     $double = new Variable('b', 1, CompiledExpression::DOUBLE);
     parent::assertSame("double", $double->getTypeName());
     $number = new Variable('c', 1, CompiledExpression::NUMBER);
     parent::assertSame("number", $number->getTypeName());
     $arr = new Variable('d', [1, 2], CompiledExpression::ARR);
     parent::assertSame("array", $arr->getTypeName());
     $object = new Variable('e', 1, CompiledExpression::OBJECT);
     parent::assertSame("object", $object->getTypeName());
     $resource = new Variable('f', 1, CompiledExpression::RESOURCE);
     parent::assertSame("resource", $resource->getTypeName());
     $callable = new Variable('g', 1, CompiledExpression::CALLABLE_TYPE);
     parent::assertSame("callable", $callable->getTypeName());
     $boolean = new Variable('h', 1, CompiledExpression::BOOLEAN);
     parent::assertSame("boolean", $boolean->getTypeName());
     $null = new Variable('i', 1, CompiledExpression::NULL);
     parent::assertSame("null", $null->getTypeName());
     $unknown = new Variable('j', 1, CompiledExpression::UNKNOWN);
     parent::assertSame("unknown", $unknown->getTypeName());
 }