public function testWithColumnAndSelectColumns() { $c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book'); $c->withColumn('UPPER(Propel\\Tests\\Bookstore\\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', 'Propel\\Tests\\Bookstore\\Book'); $c->addSelectColumn('book.ID'); $c->withColumn('UPPER(Propel\\Tests\\Bookstore\\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', 'Propel\\Tests\\Bookstore\\Book'); $c->addSelectColumn('book.ID'); $c->withColumn('UPPER(Propel\\Tests\\Bookstore\\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', 'Propel\\Tests\\Bookstore\\Book'); $c->addSelectColumn('book.ID'); $c->withColumn('UPPER(Propel\\Tests\\Bookstore\\Book.Title)', 'foo'); $c->withColumn('UPPER(Propel\\Tests\\Bookstore\\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'); }