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'); }