예제 #1
0
 public function testSetRelationMapRightAlias()
 {
     $bookTable = BookPeer::getTableMap();
     $join = new ModelJoin();
     $join->setTableMap($bookTable);
     $join->setRelationMap($bookTable->getRelation('Author'), null, 'a');
     $this->assertEquals(array(BookPeer::AUTHOR_ID), $join->getLeftColumns(), 'setRelationMap() automatically sets the left columns');
     $this->assertEquals(array('a.ID'), $join->getRightColumns(), 'setRelationMap() automatically sets the right columns  using the right table alias');
 }
예제 #2
0
 public function testIsPrimaryString()
 {
     $bookTable = BookPeer::getTableMap();
     $idColumn = $bookTable->getColumn('ID');
     $titleColumn = $bookTable->getColumn('TITLE');
     $isbnColumn = $bookTable->getColumn('ISBN');
     $this->assertFalse($idColumn->isPrimaryString(), 'isPrimaryString() returns false by default.');
     $this->assertTrue($titleColumn->isPrimaryString(), 'isPrimaryString() returns true if set in schema.');
     $this->assertFalse($isbnColumn->isPrimaryString(), 'isPrimaryString() returns false if not set in schema.');
     $titleColumn->setPrimaryString(false);
     $this->assertFalse($titleColumn->isPrimaryString(), 'isPrimaryString() returns false if unset.');
     $titleColumn->setPrimaryString(true);
     $this->assertTrue($titleColumn->isPrimaryString(), 'isPrimaryString() returns true if set.');
 }
예제 #3
0
 public function testUseFkQueryTwiceTwoAliases()
 {
     $q = BookQuery::create()->useAuthorQuery('a')->filterByFirstName('Leo')->endUse()->useAuthorQuery('b')->filterByLastName('Tolstoi')->endUse();
     $join1 = new ModelJoin();
     $join1->setJoinType(Criteria::LEFT_JOIN);
     $join1->setTableMap(AuthorPeer::getTableMap());
     $join1->setRelationMap(BookPeer::getTableMap()->getRelation('Author'), null, 'a');
     $join1->setRelationAlias('a');
     $join2 = new ModelJoin();
     $join2->setJoinType(Criteria::LEFT_JOIN);
     $join2->setTableMap(AuthorPeer::getTableMap());
     $join2->setRelationMap(BookPeer::getTableMap()->getRelation('Author'), null, 'b');
     $join2->setRelationAlias('b');
     $q1 = BookQuery::create()->addAlias('a', AuthorPeer::TABLE_NAME)->addJoinObject($join1, 'a')->add('a.FIRST_NAME', 'Leo', Criteria::EQUAL)->addAlias('b', AuthorPeer::TABLE_NAME)->addJoinObject($join2, 'b')->add('b.LAST_NAME', 'Tolstoi', Criteria::EQUAL);
     $this->assertTrue($q->equals($q1), 'useFkQuery() called twice on the same relation with two aliases creates two joins');
 }
예제 #4
0
 /**
  * @dataProvider conditionsForTestReplaceMultipleNames
  */
 public function testReplaceMultipleNames($origClause, $expectedColumns, $modifiedClause)
 {
     $c = new TestableModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book');
     $c->replaceNames($origClause);
     $foundColumns = $c->replacedColumns;
     foreach ($foundColumns as $column) {
         $expectedColumn = BookPeer::getTableMap()->getColumnByPhpName(array_shift($expectedColumns));
         $this->assertEquals($expectedColumn, $column);
     }
     $this->assertEquals($modifiedClause, $origClause);
 }