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)); }
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)); }
public function testAliasField() { $this->assertEquals('"myfield"', CqlAssembler::stringify(FieldSelectExpression::create('myfield')->setAlias('alias'))); }
public function testStatics() { $this->assertEquals('fieldname', QueryAssembler::stringify(FieldSelectExpression::create('fieldname'))); $this->assertEquals('fieldname AS new_name', QueryAssembler::stringify(FieldSelectExpression::createWithAlias('fieldname', 'new_name'))); }