public function testAssemble() { $statement = new DeleteStatement(); $update = new DeleteClause(); $update->setTable('tbl'); $statement->addClause($update); $this->assertEquals('DELETE FROM tbl', QueryAssembler::stringify($statement)); $where = new WhereClause(); $where->addPredicate((new NotEqualPredicate())->setField('username')); $statement->addClause($where); $this->assertEquals('DELETE FROM tbl WHERE username IS NOT NULL', QueryAssembler::stringify($statement)); $where->addPredicate((new LikePredicate())->setField('name')->setExpression(EndsWithExpression::create('Joh'))); $this->assertEquals('DELETE FROM tbl ' . 'WHERE username IS NOT NULL AND name LIKE "%Joh"', QueryAssembler::stringify($statement)); }
public function testAssemble() { $predicate = new NotLikePredicate(); $predicate->setField('field'); $this->assertEquals('field NOT LIKE NULL', QueryAssembler::stringify($predicate)); $predicate->setExpression(CustomLikeExpression::create(1)); $this->assertEquals('field NOT LIKE 1', QueryAssembler::stringify($predicate)); $predicate->setExpression(CustomLikeExpression::create('1')); $this->assertEquals('field NOT LIKE "1"', QueryAssembler::stringify($predicate)); $predicate->setExpression(CustomLikeExpression::create('abc')); $this->assertEquals('field NOT LIKE "abc"', QueryAssembler::stringify($predicate)); $predicate->setExpression(EndsWithExpression::create('abc')); $this->assertEquals('field NOT LIKE "%abc"', QueryAssembler::stringify($predicate)); $predicate->setExpression(ContainsExpression::create('abc')); $this->assertEquals('field NOT LIKE "%abc%"', QueryAssembler::stringify($predicate)); $predicate->setExpression(StartsWithExpression::create('abc')); $this->assertEquals('field NOT LIKE "abc%"', QueryAssembler::stringify($predicate)); $predicate->setExpression(CustomLikeExpression::create('a%bc')); $this->assertEquals('field NOT LIKE "a%bc"', QueryAssembler::stringify($predicate)); }