Exemplo n.º 1
0
 public function testAssemble()
 {
     $clause = new SelectClause();
     $this->assertEquals('SELECT *', QueryAssembler::stringify($clause));
     $clause->addExpression((new FieldSelectExpression())->setField('one'));
     $this->assertEquals('SELECT one', QueryAssembler::stringify($clause));
     $clause->addExpression((new FieldSelectExpression())->setField('two')->setAlias('three'));
     $this->assertEquals('SELECT one, two AS three', QueryAssembler::stringify($clause));
     $clause->clearExpressions();
     $clause->addExpression(new NowSelectExpression());
     $this->assertEquals('SELECT NOW()', QueryAssembler::stringify($clause));
     $clause->clearExpressions();
     $clause->addField('first');
     $this->assertEquals('SELECT first', QueryAssembler::stringify($clause));
     $clause->clearExpressions();
     $clause->addField(FieldSelectExpression::create('first'));
     $this->assertEquals('SELECT first', QueryAssembler::stringify($clause));
     $clause->clearExpressions();
     $clause->addField(new NowSelectExpression());
     $this->assertEquals('SELECT NOW()', QueryAssembler::stringify($clause));
     $clause->clearExpressions();
     $clause->addField(['full_name' => ['first', '" "', 'last']]);
     $this->assertEquals('SELECT CONCAT(first," ",last) AS full_name', QueryAssembler::stringify($clause));
     $clause->clearExpressions();
     $clause->addField('first');
     $clause->setDistinct(true);
     $this->assertEquals('SELECT DISTINCT first', QueryAssembler::stringify($clause));
     $this->setExpectedException("InvalidArgumentException");
     $clause->addField(new \stdClass());
 }
 public function testAssemble()
 {
     $expression = DecrementExpression::create(FieldSelectExpression::create('new_field'), 0);
     $this->assertEquals('new_field - 0', QueryAssembler::stringify($expression));
     $expression->setDecrementValue('abc');
     $this->assertEquals('new_field - 0', QueryAssembler::stringify($expression));
     $expression->setDecrementValue('1');
     $this->assertEquals('new_field - 1', QueryAssembler::stringify($expression));
     $expression->setDecrementValue(1);
     $this->assertEquals('new_field - 1', QueryAssembler::stringify($expression));
 }
Exemplo n.º 3
0
 public function addField($field, $alias = null)
 {
     if ($field instanceof ISelectExpression) {
         $this->addExpression($field);
     } else {
         if (is_scalar($field)) {
             $this->addExpression(FieldSelectExpression::create($field, $alias));
         } else {
             if (is_array($field)) {
                 foreach ($field as $fName => $values) {
                     $expr = new ConcatSelectExpression();
                     $expr->setPropertyArray($values);
                     $expr->setAlias($fName);
                     $this->addExpression($expr);
                 }
             } else {
                 throw new \InvalidArgumentException("Invalid field type entered");
             }
         }
     }
     return $this;
 }
 public function testAssemble()
 {
     $expression = DivisionExpression::create(FieldSelectExpression::create('fieldname'), NumericExpression::create(4));
     $this->assertEquals('(fieldname / 4)', QueryAssembler::stringify($expression));
 }
Exemplo n.º 5
0
 public function testAliasField()
 {
     $this->assertEquals('"myfield"', CqlAssembler::stringify(FieldSelectExpression::create('myfield')->setAlias('alias')));
 }
 public function assembleField(FieldSelectExpression $field)
 {
     return $this->assembleSegment($field->getField()) . ($field->hasAlias() ? ' AS ' . $this->escapeField($field->getAlias()) : '');
 }
 public function testStatics()
 {
     $this->assertEquals('fieldname', QueryAssembler::stringify(FieldSelectExpression::create('fieldname')));
     $this->assertEquals('fieldname AS new_name', QueryAssembler::stringify(FieldSelectExpression::createWithAlias('fieldname', 'new_name')));
 }
Exemplo n.º 8
0
 public function testSelectField()
 {
     $this->assertEquals('`myfield` AS `unique`', MySQLAssembler::stringify(FieldSelectExpression::createWithAlias('myfield', 'unique')));
 }