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