diff --git a/tests/Export/PgsqlTestCase.php b/tests/Export/PgsqlTestCase.php index d01a98bda..5ad4a642f 100644 --- a/tests/Export/PgsqlTestCase.php +++ b/tests/Export/PgsqlTestCase.php @@ -80,9 +80,21 @@ class Doctrine_Export_Pgsql_TestCase extends Doctrine_UnitTestCase public function testExportSql() { $sql = $this->export->exportSql(dirname(__FILE__) . DIRECTORY_SEPARATOR . '_files'); - - print "
"; - print_r($sql); + $this->assertEqual($sql, array ( 0 => 'CREATE TABLE foo (id BIGSERIAL, name VARCHAR(200) NOT NULL, parent_id BIGINT, local_foo BIGINT, PRIMARY KEY(id))', + 1 => 'CREATE TABLE foo_reference (foo1 BIGINT, foo2 BIGINT, PRIMARY KEY(foo1, foo2))', + 2 => 'CREATE TABLE foo_bar_record (fooid BIGINT, barid BIGINT, PRIMARY KEY(fooid, barid))', + 3 => 'CREATE TABLE bar (id BIGSERIAL, name VARCHAR(200), PRIMARY KEY(id))', + 4 => 'CREATE TABLE foo_locally_owned (id BIGSERIAL, name VARCHAR(200), PRIMARY KEY(id))', + 5 => 'CREATE TABLE foo_foreignly_owned (id BIGSERIAL, name VARCHAR(200), fooid BIGINT, PRIMARY KEY(id))', + 6 => 'CREATE TABLE foo_foreignly_owned_with_pk (id BIGSERIAL, name VARCHAR(200), PRIMARY KEY(id))', + 7 => 'ALTER TABLE foo_reference ADD CONSTRAINT FOREIGN KEY (foo1) REFERENCES foo(id) ON DELETE CASCADE', + 8 => 'ALTER TABLE foo_reference ADD CONSTRAINT FOREIGN KEY (foo2) REFERENCES foo(id) ON DELETE CASCADE', + 9 => 'ALTER TABLE foo ADD CONSTRAINT FOREIGN KEY (parent_id) REFERENCES foo(id) ON DELETE CASCADE', + 10 => 'ALTER TABLE foo_foreignly_owned_with_pk ADD CONSTRAINT FOREIGN KEY (id) REFERENCES foo(id)', + 11 => 'ALTER TABLE foo_bar_record ADD CONSTRAINT FOREIGN KEY (fooId) REFERENCES foo(id)', + 12 => 'ALTER TABLE foo_bar_record ADD CONSTRAINT FOREIGN KEY (barId) REFERENCES bar(id)', + 13 => 'ALTER TABLE foo_bar_record ADD CONSTRAINT FOREIGN KEY (barId) REFERENCES bar(id)', + 14 => 'ALTER TABLE foo_bar_record ADD CONSTRAINT FOREIGN KEY (fooId) REFERENCES foo(id)', )); } } ?> diff --git a/tests/Export/_files/FooRecord.php b/tests/Export/_files/FooRecord.php index d857fd2f2..0850c69b6 100644 --- a/tests/Export/_files/FooRecord.php +++ b/tests/Export/_files/FooRecord.php @@ -33,23 +33,40 @@ class FooRecord extends Doctrine_Record $this->hasOne('FooRecord as Parent', array('local' => 'parent_id', 'foreign' => 'id', 'onDelete' => 'CASCADE')); $this->hasOne('FooForeignlyOwnedWithPk', array('local' => 'id', 'foreign' => 'id', 'constraint' => true)); $this->hasOne('FooLocallyOwned', array('local' => 'local_foo', 'onDelete' => 'RESTRICT')); + $this->hasMany('BarRecord as Bar', array('local' => 'fooId', 'foreign' => 'barId', 'refClass' => 'FooBarRecord')); } } +class FooReferenceRecord extends Doctrine_Record +{ + public function setTableDefinition() + { + $this->setTableName('foo_reference'); + + $this->hasColumn('foo1', 'integer', null, array('primary' => true)); + $this->hasColumn('foo2', 'integer', null, array('primary' => true)); + } +} + class FooBarRecord extends Doctrine_Record { public function setTableDefinition() { - $this->hasColumn('fooId', 'integer', null, array('primary' => true)); - $this->hasColumn('barId', 'integer', null, array('primary' => true)); + $this->hasColumn('fooId', 'integer', null, array('primary' => true)); + $this->hasColumn('barId', 'integer', null, array('primary' => true)); } } -class BarRecord extends Doctrine_Record +class BarRecord extends Doctrine_Record { public function setTableDefinition() { + $this->setTableName('bar'); $this->hasColumn('name', 'string', 200); } + public function setUp() + { + $this->hasMany('FooRecord as Foo', array('local' => 'barId', 'foreign' => 'fooId', 'refClass' => 'FooBarRecord')); + } } class FooLocallyOwned extends Doctrine_Record { @@ -77,13 +94,4 @@ class FooForeignlyOwnedWithPk extends Doctrine_Record $this->hasOne('FooRecord', array('local' => 'id', 'foreign' => 'id')); } } -class FooReferenceRecord extends Doctrine_Record -{ - public function setTableDefinition() - { - $this->setTableName('foo_reference'); - - $this->hasColumn('foo1', 'integer', null, array('primary' => true)); - $this->hasColumn('foo2', 'integer', null, array('primary' => true)); - } -} +