Created
November 23, 2011 09:56
-
-
Save martinj/1388309 to your computer and use it in GitHub Desktop.
Propel Versionable Foreign Object Test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT | |
beers_version.ID, beers_version.NAME, beers_version.BAR_ID, beers_version.VERSION, beers_version.BAR_ID_VERSION | |
FROM | |
`beers_version` | |
WHERE | |
(beers_version.ID='2' AND beers_version.BAR_ID_VERSION='1') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT | |
beers_version.ID, beers_version.NAME, beers_version.BAR_ID, beers_version.VERSION, beers_version.BAR_ID_VERSION | |
FROM | |
`beers_version`, `bars_version` | |
WHERE | |
(bars_version.BEERS_IDS='2' AND bars_version.BEERS_VERSIONS='1'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="utf-8"?> | |
<database name="test" defaultIdMethod="native" package="DBTable"> | |
<table name="bars" phpName="Bar"> | |
<vendor type="mysql"> | |
<parameter name="Engine" value="InnoDB"/> | |
<parameter name="Charset" value="utf8"/> | |
</vendor> | |
<column name="id" phpName="Id" type="integer" primaryKey="true" autoIncrement="true" required="true"/> | |
<column name="name" phpName="Name" type="varchar" size="128" required="true"/> | |
<behavior name="versionable" /> | |
</table> | |
<table name="beers" phpName="Beer"> | |
<vendor type="mysql"> | |
<parameter name="Engine" value="InnoDB"/> | |
<parameter name="Charset" value="utf8"/> | |
</vendor> | |
<column name="id" phpName="Id" type="integer" primaryKey="true" autoIncrement="true" required="true"/> | |
<column name="name" phpName="Name" type="varchar" size="128" required="true"/> | |
<column name="bar_id" phpName="BarId" type="integer" required="true"/> | |
<foreign-key foreignTable="bars" onUpdate="cascade" onDelete="cascade"> | |
<reference local="bar_id" foreign="id" /> | |
</foreign-key> | |
<behavior name="versionable" /> | |
</table> | |
</database> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class VersionableTest extends PHPUnit_Framework_TestCase | |
{ | |
public function testVersionable() | |
{ | |
Propel::disableInstancePooling(); | |
$bar = new DBTableBar(); | |
$bar->setName('My Bar'); | |
$beer = new DBTableBeer(); | |
$beer->setName('My Beer'); | |
$bar->addBeer($beer); | |
//first version | |
$bar->save(); | |
$beer->setName('My Beer V2'); | |
//create second version that should containt "My Beer V2" | |
$bar->save(); | |
//get version 1 | |
$bar = DBTableBarQuery::create()->findPk($bar->getId()); | |
$bar->toVersion(1); | |
$beers = $bar->getBeers(); | |
$this->assertEquals(1, $beers[0]->getVersion()); | |
$this->assertEquals('My Beer', $beers[0]->getName()); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment