示例#1
0
 public function testWithColumnAndSelectColumns()
 {
     $c = new ModelCriteria('bookstore', 'Book');
     $c->withColumn('UPPER(Book.Title)', 'foo');
     $sql = 'SELECT book.ID, book.TITLE, book.ISBN, book.PRICE, book.PUBLISHER_ID, book.AUTHOR_ID, UPPER(book.TITLE) AS foo FROM `book`';
     $params = array();
     $this->assertCriteriaTranslation($c, $sql, $params, 'withColumn() adds the object columns if the criteria has no select columns');
     $c = new ModelCriteria('bookstore', 'Book');
     $c->addSelectColumn('book.ID');
     $c->withColumn('UPPER(Book.Title)', 'foo');
     $sql = 'SELECT book.ID, UPPER(book.TITLE) AS foo FROM `book`';
     $params = array();
     $this->assertCriteriaTranslation($c, $sql, $params, 'withColumn() does not add the object columns if the criteria already has select columns');
     $c = new ModelCriteria('bookstore', 'Book');
     $c->addSelectColumn('book.ID');
     $c->withColumn('UPPER(Book.Title)', 'foo');
     $c->addSelectColumn('book.TITLE');
     $sql = 'SELECT book.ID, book.TITLE, UPPER(book.TITLE) AS foo FROM `book`';
     $params = array();
     $this->assertCriteriaTranslation($c, $sql, $params, 'withColumn() does adds as column after the select columns even though the withColumn() method was called first');
     $c = new ModelCriteria('bookstore', 'Book');
     $c->addSelectColumn('book.ID');
     $c->withColumn('UPPER(Book.Title)', 'foo');
     $c->withColumn('UPPER(Book.ISBN)', 'isbn');
     $sql = 'SELECT book.ID, UPPER(book.TITLE) AS foo, UPPER(book.ISBN) AS isbn FROM `book`';
     $params = array();
     $this->assertCriteriaTranslation($c, $sql, $params, 'withColumn() called repeatedly adds several as colums');
 }
 public function testWithColumnAndSelectColumns()
 {
     $c = new ModelCriteria('bookstore', 'Book');
     $c->withColumn('UPPER(Book.Title)', 'foo');
     $sql = 'SELECT book.id, book.title, book.isbn, book.price, book.publisher_id, book.author_id, UPPER(book.title) AS `foo` FROM `book`';
     $params = array();
     $this->assertCriteriaTranslation($c, $sql, $params, 'withColumn() adds the object columns if the criteria has no select columns');
     $c = new ModelCriteria('bookstore', 'Book');
     $c->addSelectColumn('book.id');
     $c->withColumn('UPPER(Book.Title)', 'foo');
     $sql = 'SELECT book.id, UPPER(book.title) AS `foo` FROM `book`';
     $params = array();
     $this->assertCriteriaTranslation($c, $sql, $params, 'withColumn() does not add the object columns if the criteria already has select columns');
     $c = new ModelCriteria('bookstore', 'Book');
     $c->addSelectColumn('book.id');
     $c->withColumn('UPPER(Book.Title)', 'foo');
     $c->addSelectColumn('book.title');
     $sql = 'SELECT book.id, book.title, UPPER(book.title) AS `foo` FROM `book`';
     $params = array();
     $this->assertCriteriaTranslation($c, $sql, $params, 'withColumn() does adds as column after the select columns even though the withColumn() method was called first');
     $c = new ModelCriteria('bookstore', 'Book');
     $c->addSelectColumn('book.id');
     $c->withColumn('UPPER(Book.Title)', 'foo');
     $c->withColumn('UPPER(Book.isbn)', 'isbn');
     $sql = 'SELECT book.id, UPPER(book.title) AS `foo`, UPPER(book.isbn) AS `isbn` FROM `book`';
     $params = array();
     $this->assertCriteriaTranslation($c, $sql, $params, 'withColumn() called repeatedly adds several as columns');
 }