1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- <?php
-
- namespace Doctrine\Tests\DBAL\Schema\Visitor;
-
- require_once __DIR__ . '/../../../TestInit.php';
-
- use Doctrine\DBAL\Schema\Schema;
- use Doctrine\DBAL\Schema\Table;
- use Doctrine\DBAL\Types\Type;
-
- class SchemaSqlCollectorTest extends \PHPUnit_Framework_TestCase
- {
- public function testCreateSchema()
- {
- $platformMock = $this->getMock(
- 'Doctrine\DBAL\Platforms\MySqlPlatform',
- array('getCreateTableSql', 'getCreateSequenceSql', 'getCreateForeignKeySql')
- );
- $platformMock->expects($this->exactly(2))
- ->method('getCreateTableSql')
- ->will($this->returnValue(array("foo")));
- $platformMock->expects($this->exactly(1))
- ->method('getCreateSequenceSql')
- ->will($this->returnValue(array("bar")));
- $platformMock->expects($this->exactly(1))
- ->method('getCreateForeignKeySql')
- ->will($this->returnValue(array("baz")));
-
- $schema = $this->createFixtureSchema();
-
- $sql = $schema->toSql($platformMock);
-
- $this->assertEquals(array("foo", "foo", "bar", "baz"), $sql);
- }
-
- public function testDropSchema()
- {
- $platformMock = $this->getMock(
- 'Doctrine\DBAL\Platforms\MySqlPlatform',
- array('getDropTableSql', 'getDropSequenceSql', 'getDropForeignKeySql')
- );
- $platformMock->expects($this->exactly(2))
- ->method('getDropTableSql')
- ->will($this->returnValue("tbl"));
- $platformMock->expects($this->exactly(1))
- ->method('getDropSequenceSql')
- ->will($this->returnValue("seq"));
- $platformMock->expects($this->exactly(1))
- ->method('getDropForeignKeySql')
- ->will($this->returnValue("fk"));
-
- $schema = $this->createFixtureSchema();
-
- $sql = $schema->toDropSql($platformMock);
-
- $this->assertEquals(array("fk", "seq", "tbl", "tbl"), $sql);
- }
-
- /**
- * @return Schema
- */
- public function createFixtureSchema()
- {
- $schema = new Schema();
- $tableA = $schema->createTable("foo");
- $tableA->addColumn("id", 'integer');
- $tableA->addColumn("bar", 'string', array('length' => 255));
- $tableA->setPrimaryKey(array("id"));
-
- $schema->createSequence("foo_seq");
-
- $tableB = $schema->createTable("bar");
- $tableB->addColumn("id", 'integer');
- $tableB->setPrimaryKey(array("id"));
-
- $tableA->addForeignKeyConstraint($tableB, array("bar"), array("id"));
-
- return $schema;
- }
- }
|