Skip to content

Commit

Permalink
#881 DDC-2825 - refactoring test logic, removing dead private method
Browse files Browse the repository at this point in the history
  • Loading branch information
Ocramius committed Jan 14, 2015
1 parent 80ce601 commit 962f479
Showing 1 changed file with 24 additions and 38 deletions.
62 changes: 24 additions & 38 deletions tests/Doctrine/Tests/ORM/Functional/Ticket/DDC2825Test.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,32 @@ protected function setup()
* @dataProvider getTestedClasses
*
* @param string $className
* @param string $schema
* @param string $table
* @param string $expectedSchemaName
* @param string $expectedTableName
*/
public function testClassSchemaMappingsValidity($className, $schema, $table)
public function testClassSchemaMappingsValidity($className, $expectedSchemaName, $expectedTableName)
{
$this->checkClassMetadata($className, $schema, $table);
$classMetadata = $this->_em->getClassMetadata($className);
$platform = $this->_em->getConnection()->getDatabasePlatform();
$quotedTableName = $this->_em->getConfiguration()->getQuoteStrategy()->getTableName($classMetadata, $platform);

// Check if table name and schema properties are defined in the class metadata
$this->assertEquals($expectedTableName, $classMetadata->table['name']);
$this->assertEquals($expectedSchemaName, $classMetadata->table['schema']);

if ($this->_em->getConnection()->getDatabasePlatform()->supportsSchemas()) {
$fullTableName = sprintf('%s.%s', $expectedSchemaName, $expectedTableName);
} else {
$fullTableName = sprintf('%s__%s', $expectedSchemaName, $expectedTableName);
}

$this->assertEquals($fullTableName, $quotedTableName);

// Checks sequence name validity
$this->assertEquals(
$fullTableName . '_' . $classMetadata->getSingleIdentifierColumnName() . '_seq',
$classMetadata->getSequenceName($platform)
);
}

/**
Expand Down Expand Up @@ -71,40 +91,6 @@ public function getTestedClasses()
array(DDC2825ClassWithImplicitlyDefinedSchemaAndQuotedTableName::CLASSNAME, 'myschema', 'order'),
);
}

/**
* Checks that class metadata is correctly stored when a database schema is used and
* checks that the table name is correctly converted whether the platform supports database
* schemas or not
*
* @param string $className Class metadata
* @param string $expectedSchemaName Expected schema name
* @param string $expectedTableName Expected table name
*/
private function checkClassMetadata($className, $expectedSchemaName, $expectedTableName)
{
$classMetadata = $this->_em->getClassMetadata($className);
$platform = $this->_em->getConnection()->getDatabasePlatform();
$quotedTableName = $this->_em->getConfiguration()->getQuoteStrategy()->getTableName($classMetadata, $platform);

// Check if table name and schema properties are defined in the class metadata
$this->assertEquals($expectedTableName, $classMetadata->table['name']);
$this->assertEquals($expectedSchemaName, $classMetadata->table['schema']);

if ($this->_em->getConnection()->getDatabasePlatform()->supportsSchemas()) {
$fullTableName = sprintf('%s.%s', $expectedSchemaName, $expectedTableName);
} else {
$fullTableName = sprintf('%s__%s', $expectedSchemaName, $expectedTableName);
}

$this->assertEquals($fullTableName, $quotedTableName);

// Checks sequence name validity
$this->assertEquals(
$fullTableName . '_' . $classMetadata->getSingleIdentifierColumnName() . '_seq',
$classMetadata->getSequenceName($platform)
);
}
}

/**
Expand Down

0 comments on commit 962f479

Please sign in to comment.