public static function deleteFrom($from, ...$expressions)
 {
     $statement = new DeleteStatement();
     $statement->addClause((new DeleteClause())->setTable($from));
     if (!empty($expressions)) {
         $statement->where(...$expressions);
     }
     return $statement;
 }
 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));
 }