1
0
mirror of synced 2025-02-20 14:13:15 +03:00

test ClassMetadata whit UnderscoreNamingStrategy

This commit is contained in:
Fabio B. Silva 2011-12-23 14:13:21 -02:00
parent 83a9458653
commit eac34b6d6a
3 changed files with 53 additions and 3 deletions

View File

@ -19,7 +19,6 @@
*/
namespace Doctrine\ORM;
use Doctrine\Common\Util\Inflector;
/**
* The default NamingStrategy
@ -122,12 +121,12 @@ class UnderscoreNamingStrategy implements NamingStrategy
*/
private function underscore($string)
{
$string = Inflector::tableize($string);
$string = preg_replace('/(?<=[a-z])([A-Z])/', '_$1', $string);
if ($this->case == self::CASE_UPPER) {
return strtoupper($string);
}
return $string;
return strtolower($string);
}
}

View File

@ -293,6 +293,51 @@ class ClassMetadataTest extends \Doctrine\Tests\OrmTestCase
$this->assertEquals('cmsuser_id', $cm->associationMappings['user']['joinTable']['inverseJoinColumns'][0]['name']);
}
/**
* @group DDC-559
*/
public function testUnderscoreNamingStrategyDefaults()
{
$namingStrategy = new \Doctrine\ORM\UnderscoreNamingStrategy(\Doctrine\ORM\UnderscoreNamingStrategy::CASE_UPPER);
$oneToOneMetadata = new ClassMetadata('Doctrine\Tests\Models\CMS\CmsAddress', $namingStrategy);
$manyToManyMetadata = new ClassMetadata('Doctrine\Tests\Models\CMS\CmsAddress', $namingStrategy);
$oneToOneMetadata->mapOneToOne(array(
'fieldName' => 'user',
'targetEntity' => 'CmsUser'
));
$manyToManyMetadata->mapManyToMany(array(
'fieldName' => 'user',
'targetEntity' => 'CmsUser'
));
$this->assertEquals(array('USER_ID'=>'ID'), $oneToOneMetadata->associationMappings['user']['sourceToTargetKeyColumns']);
$this->assertEquals(array('USER_ID'=>'USER_ID'), $oneToOneMetadata->associationMappings['user']['joinColumnFieldNames']);
$this->assertEquals(array('ID'=>'USER_ID'), $oneToOneMetadata->associationMappings['user']['targetToSourceKeyColumns']);
$this->assertEquals('USER_ID', $oneToOneMetadata->associationMappings['user']['joinColumns'][0]['name']);
$this->assertEquals('ID', $oneToOneMetadata->associationMappings['user']['joinColumns'][0]['referencedColumnName']);
$this->assertEquals('CMS_ADDRESS_CMS_USER', $manyToManyMetadata->associationMappings['user']['joinTable']['name']);
$this->assertEquals(array('CMS_ADDRESS_ID','CMS_USER_ID'), $manyToManyMetadata->associationMappings['user']['joinTableColumns']);
$this->assertEquals(array('CMS_ADDRESS_ID'=>'ID'), $manyToManyMetadata->associationMappings['user']['relationToSourceKeyColumns']);
$this->assertEquals(array('CMS_USER_ID'=>'ID'), $manyToManyMetadata->associationMappings['user']['relationToTargetKeyColumns']);
$this->assertEquals('CMS_ADDRESS_ID', $manyToManyMetadata->associationMappings['user']['joinTable']['joinColumns'][0]['name']);
$this->assertEquals('CMS_USER_ID', $manyToManyMetadata->associationMappings['user']['joinTable']['inverseJoinColumns'][0]['name']);
$this->assertEquals('ID', $manyToManyMetadata->associationMappings['user']['joinTable']['joinColumns'][0]['referencedColumnName']);
$this->assertEquals('ID', $manyToManyMetadata->associationMappings['user']['joinTable']['inverseJoinColumns'][0]['referencedColumnName']);
$cm = new ClassMetadata('DoctrineGlobal_Article', $namingStrategy);
$cm->mapManyToMany(array('fieldName' => 'author', 'targetEntity' => 'Doctrine\Tests\Models\CMS\CmsUser'));
$this->assertEquals('DOCTRINE_GLOBAL_ARTICLE_CMS_USER', $cm->associationMappings['author']['joinTable']['name']);
}
/**
* @group DDC-886
*/

View File

@ -106,6 +106,12 @@ class NamingStrategyTest extends \Doctrine\Tests\OrmTestCase
array(self::underscoreNamingUpper(), 'SOME_PROPERTY',
'someProperty'
),
array(self::underscoreNamingUpper(), 'SOME_PROPERTY',
'some_property'
),
array(self::underscoreNamingUpper(), 'SOME_PROPERTY',
'SOME_PROPERTY'
),
);
}