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'); }
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.'); }
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'); }
/** * @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); }