public function testNull() { $expression = ValueExpression::create(null); $this->assertNull($expression->getValue()); $this->assertEquals('NULL', QueryAssembler::stringify($expression)); $stmt = QueryBuilder::update('tbl', ['field' => $expression]); $assembler = new QueryAssembler($stmt); $this->assertEquals('UPDATE tbl SET field = ?', $assembler->getQuery()); $this->assertEquals([null], $assembler->getParameters()); }
public function testAssemble() { $expression = new IncrementExpression(); $expression->setField(FieldExpression::create('new_field')); $this->assertEquals('new_field + 0', QueryAssembler::stringify($expression)); $expression->setIncrementValue('abc'); $this->assertEquals('new_field + 0', QueryAssembler::stringify($expression)); $expression->setIncrementValue('1'); $this->assertEquals('new_field + 1', QueryAssembler::stringify($expression)); $expression->setIncrementValue(1); $this->assertEquals('new_field + 1', QueryAssembler::stringify($expression)); $stmt = QueryBuilder::update('tbl'); $stmt->set('inc_field', $expression); $qa = new QueryAssembler($stmt); $this->assertEquals('UPDATE tbl SET inc_field = new_field + ?', $qa->getQuery()); $this->assertEquals([1], $qa->getParameters()); }
public function testAssemble() { $statement = QueryBuilder::update('tbl', ['field1' => 'value1']); $this->assertEquals('UPDATE tbl SET field1 = "value1"', QueryAssembler::stringify($statement)); $statement->where(['NOT' => ['username' => null]]); $this->assertEquals('UPDATE tbl SET field1 = "value1" WHERE username IS NOT NULL', QueryAssembler::stringify($statement)); $statement->set('username', 'john'); $statement->andWhere((new LikePredicate())->setField('name')->setExpression(StartsWithExpression::create('Joh'))); $this->assertEquals('UPDATE tbl SET field1 = "value1", username = "******" ' . 'WHERE username IS NOT NULL AND name LIKE "Joh%"', QueryAssembler::stringify($statement)); $statement->set('bob', null); $this->assertEquals('UPDATE tbl SET field1 = "value1", username = "******", bob = NULL ' . 'WHERE username IS NOT NULL AND name LIKE "Joh%"', QueryAssembler::stringify($statement)); $statement->orderBy(['username' => 'asc']); $this->assertEquals('UPDATE tbl SET field1 = "value1", username = "******", bob = NULL ' . 'WHERE username IS NOT NULL AND name LIKE "Joh%" ORDER BY username ASC', QueryAssembler::stringify($statement)); $statement->orderBy(['username' => 'desc', 'field1' => 'asc']); $this->assertEquals('UPDATE tbl SET field1 = "value1", username = "******", bob = NULL ' . 'WHERE username IS NOT NULL AND name LIKE "Joh%" ' . 'ORDER BY username DESC, field1 ASC', QueryAssembler::stringify($statement)); $statement->limit(2); $this->assertEquals('UPDATE tbl SET field1 = "value1", username = "******", bob = NULL ' . 'WHERE username IS NOT NULL AND name LIKE "Joh%" ' . 'ORDER BY username DESC, field1 ASC LIMIT 2', QueryAssembler::stringify($statement)); }
public function testBoolean() { $expression = new BooleanExpression(); $expression->setValue(true); $this->assertEquals('true', QueryAssembler::stringify($expression)); $expression->setValue(1); $this->assertEquals('true', QueryAssembler::stringify($expression)); $expression->setValue('abc'); $this->assertEquals('true', QueryAssembler::stringify($expression)); $expression->setValue(false); $this->assertEquals('false', QueryAssembler::stringify($expression)); $expression->setValue(0); $this->assertEquals('false', QueryAssembler::stringify($expression)); $expression->setValue(''); $this->assertEquals('false', QueryAssembler::stringify($expression)); $stmt = QueryBuilder::update('tbl', ['field' => $expression]); $assembler = new QueryAssembler($stmt); $this->assertEquals('UPDATE tbl SET field = ?', $assembler->getQuery()); $this->assertEquals([false], $assembler->getParameters()); }
/** * @param $table * @param $keyValues * * @return CqlUpdateStatement */ public static function update($table, array $keyValues = null) { return parent::update($table, $keyValues); }