1
0
mirror of synced 2025-02-03 22:09:26 +03:00
doctrine2/tests/Doctrine/Tests/ORM/Mapping/NamingStrategyTest.php

323 lines
9.3 KiB
PHP
Raw Normal View History

2011-12-22 12:07:18 -02:00
<?php
namespace Doctrine\Tests\ORM\Mapping;
2011-12-22 12:07:18 -02:00
use Doctrine\ORM\Mapping\UnderscoreNamingStrategy;
use Doctrine\ORM\Mapping\DefaultNamingStrategy;
use Doctrine\ORM\Mapping\NamingStrategy;
use Doctrine\Tests\ORM\Mapping\NamingStrategy\JoinColumnClassNamingStrategy;
use Doctrine\Tests\OrmTestCase;
2011-12-22 12:07:18 -02:00
/**
* @group DDC-559
*/
class NamingStrategyTest extends OrmTestCase
2011-12-22 12:07:18 -02:00
{
2011-12-22 14:07:58 -02:00
/**
* @return DefaultNamingStrategy
*/
static private function defaultNaming()
2011-12-22 12:07:18 -02:00
{
2011-12-23 12:16:36 -02:00
return new DefaultNamingStrategy();
}
/**
* @return UnderscoreNamingStrategy
*/
static private function underscoreNamingLower()
{
2011-12-24 11:45:51 -02:00
return new UnderscoreNamingStrategy(CASE_LOWER);
2011-12-23 12:16:36 -02:00
}
/**
* @return UnderscoreNamingStrategy
*/
static private function underscoreNamingUpper()
{
2011-12-24 11:45:51 -02:00
return new UnderscoreNamingStrategy(CASE_UPPER);
2011-12-22 14:07:58 -02:00
}
/**
* Data Provider for NamingStrategy#classToTableName
*
* @return array
*/
static public function dataClassToTableName()
{
return [
2011-12-23 12:16:36 -02:00
// DefaultNamingStrategy
[
self::defaultNaming(), 'SomeClassName',
2011-12-22 14:07:58 -02:00
'SomeClassName'
],
[
self::defaultNaming(), 'SomeClassName',
2011-12-23 11:03:28 -02:00
'\SomeClassName'
],
[
self::defaultNaming(), 'Name',
2011-12-23 11:03:28 -02:00
'\Some\Class\Name'
],
2011-12-23 12:16:36 -02:00
// UnderscoreNamingStrategy
[
self::underscoreNamingLower(), 'some_class_name',
2011-12-23 12:16:36 -02:00
'\Name\Space\SomeClassName'
],
[
self::underscoreNamingLower(), 'name',
2011-12-23 12:16:36 -02:00
'\Some\Class\Name'
],
[
self::underscoreNamingUpper(), 'SOME_CLASS_NAME',
2011-12-23 12:16:36 -02:00
'\Name\Space\SomeClassName'
],
[
self::underscoreNamingUpper(), 'NAME',
2011-12-23 12:16:36 -02:00
'\Some\Class\Name'
],
];
2011-12-22 14:07:58 -02:00
}
/**
* @dataProvider dataClassToTableName
*/
2011-12-23 11:03:28 -02:00
public function testClassToTableName(NamingStrategy $strategy, $expected, $className)
2011-12-22 14:07:58 -02:00
{
$this->assertEquals($expected, $strategy->classToTableName($className));
}
/**
* Data Provider for NamingStrategy#propertyToColumnName
*
2011-12-22 14:07:58 -02:00
* @return array
*/
static public function dataPropertyToColumnName()
{
return [
2011-12-23 12:16:36 -02:00
// DefaultNamingStrategy
[
self::defaultNaming(), 'someProperty',
2011-12-22 14:07:58 -02:00
'someProperty'
],
[
self::defaultNaming(), 'SOME_PROPERTY',
2011-12-22 14:07:58 -02:00
'SOME_PROPERTY'
],
[
self::defaultNaming(), 'some_property',
2011-12-22 14:07:58 -02:00
'some_property'
],
2011-12-23 12:16:36 -02:00
// UnderscoreNamingStrategy
[
self::underscoreNamingLower(), 'some_property',
2011-12-23 12:16:36 -02:00
'someProperty'
],
[
self::underscoreNamingUpper(), 'SOME_PROPERTY',
2011-12-23 12:16:36 -02:00
'someProperty'
],
[
self::underscoreNamingUpper(), 'SOME_PROPERTY',
'some_property'
],
[
self::underscoreNamingUpper(), 'SOME_PROPERTY',
'SOME_PROPERTY'
],
];
2011-12-22 14:07:58 -02:00
}
2011-12-22 14:07:58 -02:00
/**
* @dataProvider dataPropertyToColumnName
*
2011-12-24 11:45:51 -02:00
* @param NamingStrategy $strategy
* @param string $expected
* @param string $propertyName
2011-12-22 14:07:58 -02:00
*/
public function testPropertyToColumnName(NamingStrategy $strategy, $expected, $propertyName)
{
$this->assertEquals($expected, $strategy->propertyToColumnName($propertyName));
}
/**
2011-12-23 11:03:28 -02:00
* Data Provider for NamingStrategy#referenceColumnName
2011-12-22 14:07:58 -02:00
*
* @return array
*/
2011-12-23 11:03:28 -02:00
static public function dataReferenceColumnName()
2011-12-22 14:07:58 -02:00
{
return [
2011-12-23 12:16:36 -02:00
// DefaultNamingStrategy
[self::defaultNaming(), 'id'],
2011-12-23 12:16:36 -02:00
// UnderscoreNamingStrategy
[self::underscoreNamingLower(), 'id'],
[self::underscoreNamingUpper(), 'ID'],
];
2011-12-22 14:07:58 -02:00
}
2011-12-23 11:03:28 -02:00
2011-12-22 14:07:58 -02:00
/**
2011-12-23 11:03:28 -02:00
* @dataProvider dataReferenceColumnName
*
2011-12-24 11:45:51 -02:00
* @param NamingStrategy $strategy
* @param string $expected
2011-12-22 14:07:58 -02:00
*/
2011-12-23 11:03:28 -02:00
public function testReferenceColumnName(NamingStrategy $strategy, $expected)
2011-12-22 14:07:58 -02:00
{
2011-12-23 11:03:28 -02:00
$this->assertEquals($expected, $strategy->referenceColumnName());
2011-12-22 14:07:58 -02:00
}
/**
2011-12-23 11:03:28 -02:00
* Data Provider for NamingStrategy#joinColumnName
2011-12-22 14:07:58 -02:00
*
* @return array
*/
2011-12-23 11:03:28 -02:00
static public function dataJoinColumnName()
2011-12-22 14:07:58 -02:00
{
return [
2011-12-23 12:16:36 -02:00
// DefaultNamingStrategy
[self::defaultNaming(), 'someColumn_id', 'someColumn', null],
[self::defaultNaming(), 'some_column_id', 'some_column', null],
2011-12-23 12:16:36 -02:00
// UnderscoreNamingStrategy
[self::underscoreNamingLower(), 'some_column_id', 'someColumn', null],
[self::underscoreNamingUpper(), 'SOME_COLUMN_ID', 'someColumn', null],
// JoinColumnClassNamingStrategy
[new JoinColumnClassNamingStrategy(), 'classname_someColumn_id', 'someColumn', 'Some\ClassName'],
[new JoinColumnClassNamingStrategy(), 'classname_some_column_id', 'some_column', 'ClassName'],
];
2011-12-22 14:07:58 -02:00
}
2011-12-23 11:03:28 -02:00
2011-12-22 14:07:58 -02:00
/**
2011-12-23 11:03:28 -02:00
* @dataProvider dataJoinColumnName
*
2011-12-24 11:45:51 -02:00
* @param NamingStrategy $strategy
* @param string $expected
* @param string $propertyName
2011-12-22 14:07:58 -02:00
*/
public function testJoinColumnName(NamingStrategy $strategy, $expected, $propertyName, $className = null)
2011-12-22 14:07:58 -02:00
{
$this->assertEquals($expected, $strategy->joinColumnName($propertyName, $className));
2011-12-22 14:07:58 -02:00
}
/**
2011-12-23 11:03:28 -02:00
* Data Provider for NamingStrategy#joinTableName
2011-12-22 14:07:58 -02:00
*
* @return array
*/
2011-12-23 11:03:28 -02:00
static public function dataJoinTableName()
2011-12-22 14:07:58 -02:00
{
return [
2011-12-23 12:16:36 -02:00
// DefaultNamingStrategy
[
self::defaultNaming(), 'someclassname_classname',
2011-12-23 11:03:28 -02:00
'SomeClassName', 'Some\ClassName', null,
],
[
self::defaultNaming(), 'someclassname_classname',
2011-12-23 11:03:28 -02:00
'\SomeClassName', 'ClassName', null,
],
[
self::defaultNaming(), 'name_classname',
2011-12-23 11:03:28 -02:00
'\Some\Class\Name', 'ClassName', null,
],
2011-12-23 12:16:36 -02:00
// UnderscoreNamingStrategy
[
self::underscoreNamingLower(), 'some_class_name_class_name',
2011-12-23 12:16:36 -02:00
'SomeClassName', 'Some\ClassName', null,
],
[
self::underscoreNamingLower(), 'some_class_name_class_name',
2011-12-23 12:16:36 -02:00
'\SomeClassName', 'ClassName', null,
],
[
self::underscoreNamingLower(), 'name_class_name',
2011-12-23 12:16:36 -02:00
'\Some\Class\Name', 'ClassName', null,
],
2011-12-23 12:16:36 -02:00
[
self::underscoreNamingUpper(), 'SOME_CLASS_NAME_CLASS_NAME',
2011-12-23 12:16:36 -02:00
'SomeClassName', 'Some\ClassName', null,
],
[
self::underscoreNamingUpper(), 'SOME_CLASS_NAME_CLASS_NAME',
2011-12-23 12:16:36 -02:00
'\SomeClassName', 'ClassName', null,
],
[
self::underscoreNamingUpper(), 'NAME_CLASS_NAME',
2011-12-23 12:16:36 -02:00
'\Some\Class\Name', 'ClassName', null,
],
];
2011-12-22 14:07:58 -02:00
}
/**
2011-12-23 11:03:28 -02:00
* @dataProvider dataJoinTableName
2011-12-22 14:07:58 -02:00
*
2011-12-24 11:45:51 -02:00
* @param NamingStrategy $strategy
* @param string $expected
* @param string $ownerEntity
* @param string $associatedEntity
* @param string $propertyName
2011-12-22 14:07:58 -02:00
*/
2011-12-23 11:03:28 -02:00
public function testJoinTableName(NamingStrategy $strategy, $expected, $ownerEntity, $associatedEntity, $propertyName = null)
2011-12-22 14:07:58 -02:00
{
2011-12-23 11:03:28 -02:00
$this->assertEquals($expected, $strategy->joinTableName($ownerEntity, $associatedEntity, $propertyName));
2011-12-22 14:07:58 -02:00
}
/**
* Data Provider for NamingStrategy#joinKeyColumnName
*
* @return array
*/
static public function dataJoinKeyColumnName()
{
return [
2011-12-23 12:16:36 -02:00
// DefaultNamingStrategy
[
self::defaultNaming(), 'someclassname_id',
2011-12-23 11:03:28 -02:00
'SomeClassName', null, null,
],
[
self::defaultNaming(), 'name_identifier',
2011-12-23 11:03:28 -02:00
'\Some\Class\Name', 'identifier', null,
],
2011-12-23 12:16:36 -02:00
// UnderscoreNamingStrategy
[
self::underscoreNamingLower(), 'some_class_name_id',
2011-12-23 12:16:36 -02:00
'SomeClassName', null, null,
],
[
self::underscoreNamingLower(), 'class_name_identifier',
2011-12-23 12:16:36 -02:00
'\Some\Class\ClassName', 'identifier', null,
],
2011-12-23 12:16:36 -02:00
[
self::underscoreNamingUpper(), 'SOME_CLASS_NAME_ID',
2011-12-23 12:16:36 -02:00
'SomeClassName', null, null,
],
[
self::underscoreNamingUpper(), 'CLASS_NAME_IDENTIFIER',
2011-12-23 12:16:36 -02:00
'\Some\Class\ClassName', 'IDENTIFIER', null,
],
];
2011-12-22 14:07:58 -02:00
}
/**
* @dataProvider dataJoinKeyColumnName
*
2011-12-24 11:45:51 -02:00
* @param NamingStrategy $strategy
* @param string $expected
* @param string $propertyEntityName
* @param string $referencedColumnName
* @param string $propertyName
2011-12-22 14:07:58 -02:00
*/
2011-12-23 11:03:28 -02:00
public function testJoinKeyColumnName(NamingStrategy $strategy, $expected, $propertyEntityName, $referencedColumnName = null, $propertyName = null)
2011-12-22 14:07:58 -02:00
{
2011-12-23 11:03:28 -02:00
$this->assertEquals($expected, $strategy->joinKeyColumnName($propertyEntityName, $referencedColumnName, $propertyName));
2011-12-22 14:07:58 -02:00
}
}