| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 | 
							- <?php
 - 
 - namespace Doctrine\Tests\DBAL\Schema;
 - 
 - require_once __DIR__ . '/../../TestInit.php';
 - 
 - use Doctrine\DBAL\Schema\Schema;
 - use Doctrine\DBAL\Schema\Table;
 - use Doctrine\DBAL\Schema\Sequence;
 - 
 - class SchemaTest extends \PHPUnit_Framework_TestCase
 - {
 -     public function testAddTable()
 -     {
 -         $tableName = "foo";
 -         $table = new Table($tableName);
 - 
 -         $schema = new Schema(array($table));
 - 
 -         $this->assertTrue($schema->hasTable($tableName));
 - 
 -         $tables = $schema->getTables();
 -         $this->assertTrue( isset($tables[$tableName]) );
 -         $this->assertSame($table, $tables[$tableName]);
 -         $this->assertSame($table, $schema->getTable($tableName));
 -         $this->assertTrue($schema->hasTable($tableName));
 -     }
 - 
 -     public function testTableMatchingCaseInsenstive()
 -     {
 -         $table = new Table("Foo");
 - 
 -         $schema = new Schema(array($table));
 -         $this->assertTrue($schema->hasTable("foo"));
 -         $this->assertTrue($schema->hasTable("FOO"));
 - 
 -         $this->assertSame($table, $schema->getTable('FOO'));
 -         $this->assertSame($table, $schema->getTable('foo'));
 -         $this->assertSame($table, $schema->getTable('Foo'));
 -     }
 - 
 -     public function testGetUnknownTableThrowsException()
 -     {
 -         $this->setExpectedException("Doctrine\DBAL\Schema\SchemaException");
 - 
 -         $schema = new Schema();
 -         $schema->getTable("unknown");
 -     }
 - 
 -     public function testCreateTableTwiceThrowsException()
 -     {
 -         $this->setExpectedException("Doctrine\DBAL\Schema\SchemaException");
 - 
 -         $tableName = "foo";
 -         $table = new Table($tableName);
 -         $tables = array($table, $table);
 - 
 -         $schema = new Schema($tables);
 -     }
 - 
 -     public function testRenameTable()
 -     {
 -         $tableName = "foo";
 -         $table = new Table($tableName);
 -         $schema = new Schema(array($table));
 - 
 -         $this->assertTrue($schema->hasTable("foo"));
 -         $schema->renameTable("foo", "bar");
 -         $this->assertFalse($schema->hasTable("foo"));
 -         $this->assertTrue($schema->hasTable("bar"));
 -         $this->assertSame($table, $schema->getTable("bar"));
 -     }
 - 
 -     public function testDropTable()
 -     {
 -         $tableName = "foo";
 -         $table = new Table($tableName);
 -         $schema = new Schema(array($table));
 - 
 -         $this->assertTrue($schema->hasTable("foo"));
 - 
 -         $schema->dropTable("foo");
 - 
 -         $this->assertFalse($schema->hasTable("foo"));
 -     }
 - 
 -     public function testCreateTable()
 -     {
 -         $schema = new Schema();
 - 
 -         $this->assertFalse($schema->hasTable("foo"));
 - 
 -         $table = $schema->createTable("foo");
 - 
 -         $this->assertInstanceOf('Doctrine\DBAL\Schema\Table', $table);
 -         $this->assertEquals("foo", $table->getName());
 -         $this->assertTrue($schema->hasTable("foo"));
 -     }
 - 
 -     public function testAddSequences()
 -     {
 -         $sequence = new Sequence("a_seq", 1, 1);
 - 
 -         $schema = new Schema(array(), array($sequence));
 - 
 -         $this->assertTrue($schema->hasSequence("a_seq"));
 -         $this->assertInstanceOf('Doctrine\DBAL\Schema\Sequence', $schema->getSequence("a_seq"));
 - 
 -         $sequences = $schema->getSequences();
 -         $this->assertArrayHasKey('a_seq', $sequences);
 -     }
 - 
 -     public function testSequenceAccessCaseInsensitive()
 -     {
 -         $sequence = new Sequence("a_Seq");
 - 
 -         $schema = new Schema(array(), array($sequence));
 -         $this->assertTrue($schema->hasSequence('a_seq'));
 -         $this->assertTrue($schema->hasSequence('a_Seq'));
 -         $this->assertTrue($schema->hasSequence('A_SEQ'));
 - 
 -         $this->assertEquals($sequence, $schema->getSequence('a_seq'));
 -         $this->assertEquals($sequence, $schema->getSequence('a_Seq'));
 -         $this->assertEquals($sequence, $schema->getSequence('A_SEQ'));
 -     }
 - 
 -     public function testGetUnknownSequenceThrowsException()
 -     {
 -         $this->setExpectedException("Doctrine\DBAL\Schema\SchemaException");
 - 
 -         $schema = new Schema();
 -         $schema->getSequence("unknown");
 -     }
 - 
 -     public function testCreateSequence()
 -     {
 -         $schema = new Schema();
 -         $sequence = $schema->createSequence('a_seq', 10, 20);
 - 
 -         $this->assertEquals('a_seq', $sequence->getName());
 -         $this->assertEquals(10, $sequence->getAllocationSize());
 -         $this->assertEquals(20, $sequence->getInitialValue());
 - 
 -         $this->assertTrue($schema->hasSequence("a_seq"));
 -         $this->assertInstanceOf('Doctrine\DBAL\Schema\Sequence', $schema->getSequence("a_seq"));
 - 
 -         $sequences = $schema->getSequences();
 -         $this->assertArrayHasKey('a_seq', $sequences);
 -     }
 - 
 -     public function testDropSequence()
 -     {
 -         $sequence = new Sequence("a_seq", 1, 1);
 - 
 -         $schema = new Schema(array(), array($sequence));
 - 
 -         $schema->dropSequence("a_seq");
 -         $this->assertFalse($schema->hasSequence("a_seq"));
 -     }
 - 
 -     public function testAddSequenceTwiceThrowsException()
 -     {
 -         $this->setExpectedException("Doctrine\DBAL\Schema\SchemaException");
 - 
 -         $sequence = new Sequence("a_seq", 1, 1);
 - 
 -         $schema = new Schema(array(), array($sequence, $sequence));
 -     }
 - 
 -     public function testConfigMaxIdentifierLength()
 -     {
 -         $schemaConfig = new \Doctrine\DBAL\Schema\SchemaConfig();
 -         $schemaConfig->setMaxIdentifierLength(5);
 - 
 -         $schema = new Schema(array(), array(), $schemaConfig);
 -         $table = $schema->createTable("smalltable");
 -         $table->addColumn('long_id', 'integer');
 -         $table->addIndex(array('long_id'));
 - 
 -         $index = current($table->getIndexes());
 -         $this->assertEquals(5, strlen($index->getName()));
 -     }
 - 
 -     public function testDeepClone()
 -     {
 -         $schema = new Schema();
 -         $sequence = $schema->createSequence('baz');
 - 
 -         $tableA = $schema->createTable('foo');
 -         $tableA->addColumn('id', 'integer');
 - 
 -         $tableB = $schema->createTable('bar');
 -         $tableB->addColumn('id', 'integer');
 -         $tableB->addColumn('foo_id', 'integer');
 -         $tableB->addForeignKeyConstraint($tableA, array('foo_id'), array('id'));
 - 
 -         $schemaNew = clone $schema;
 - 
 -         $this->assertNotSame($sequence, $schemaNew->getSequence('baz'));
 - 
 -         $this->assertNotSame($tableA, $schemaNew->getTable('foo'));
 -         $this->assertNotSame($tableA->getColumn('id'), $schemaNew->getTable('foo')->getColumn('id'));
 - 
 -         $this->assertNotSame($tableB, $schemaNew->getTable('bar'));
 -         $this->assertNotSame($tableB->getColumn('id'), $schemaNew->getTable('bar')->getColumn('id'));
 - 
 -         $fk = $schemaNew->getTable('bar')->getForeignKeys();
 -         $fk = current($fk);
 -         $this->assertSame($schemaNew->getTable('bar'), $this->readAttribute($fk, '_localTable'));
 -     }
 - }
 
 
  |