X-Git-Url: http://git.inspyration.org/?a=blobdiff_plain;f=vendor%2Fdoctrine%2Form%2Ftests%2FDoctrine%2FTests%2FORM%2FMapping%2FQuoteStrategyTest.php;fp=vendor%2Fdoctrine%2Form%2Ftests%2FDoctrine%2FTests%2FORM%2FMapping%2FQuoteStrategyTest.php;h=23f02b4519289983863a5539f275138dcb542ee8;hb=8b04b2d11798dee4f3e1358e4f43e97a6df851f6;hp=0000000000000000000000000000000000000000;hpb=73568cf05a785a45f94ca3f2351d9e07bf917958;p=zf2.biz%2Fgalerie.git diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Mapping/QuoteStrategyTest.php b/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Mapping/QuoteStrategyTest.php new file mode 100644 index 0000000..23f02b4 --- /dev/null +++ b/vendor/doctrine/orm/tests/Doctrine/Tests/ORM/Mapping/QuoteStrategyTest.php @@ -0,0 +1,197 @@ +_getTestEntityManager(); + $this->platform = $em->getConnection()->getDatabasePlatform(); + $this->strategy = new DefaultQuoteStrategy(); + } + + /** + * @param string $className + * @return \Doctrine\ORM\Mapping\ClassMetadata + */ + private function createClassMetadata($className) + { + $cm = new ClassMetadata($className); + $cm->initializeReflection(new \Doctrine\Common\Persistence\Mapping\RuntimeReflectionService); + + return $cm; + } + + public function testConfiguration() + { + $em = $this->_getTestEntityManager(); + $config = $em->getConfiguration(); + + $this->assertInstanceOf('Doctrine\ORM\Mapping\QuoteStrategy', $config->getQuoteStrategy()); + $this->assertInstanceOf('Doctrine\ORM\Mapping\DefaultQuoteStrategy', $config->getQuoteStrategy()); + + $config->setQuoteStrategy(new MyQuoteStrategy()); + + $this->assertInstanceOf('Doctrine\ORM\Mapping\QuoteStrategy', $config->getQuoteStrategy()); + $this->assertInstanceOf('Doctrine\Tests\ORM\Mapping\MyQuoteStrategy', $config->getQuoteStrategy()); + } + + public function testGetColumnName() + { + $cm = $this->createClassMetadata('Doctrine\Tests\Models\CMS\CmsUser'); + $cm->mapField(array('fieldName' => 'name', 'columnName' => '`name`')); + $cm->mapField(array('fieldName' => 'id', 'columnName' => 'id')); + + $this->assertEquals('id' ,$this->strategy->getColumnName('id', $cm, $this->platform)); + $this->assertEquals('"name"' ,$this->strategy->getColumnName('name', $cm, $this->platform)); + } + + public function testGetTableName() + { + $cm = $this->createClassMetadata('Doctrine\Tests\Models\CMS\CmsUser'); + $cm->setPrimaryTable(array('name'=>'`cms_user`')); + $this->assertEquals('"cms_user"' ,$this->strategy->getTableName($cm, $this->platform)); + + $cm = new ClassMetadata('Doctrine\Tests\Models\CMS\CmsUser'); + $cm->initializeReflection(new \Doctrine\Common\Persistence\Mapping\RuntimeReflectionService); + $cm->setPrimaryTable(array('name'=>'cms_user')); + $this->assertEquals('cms_user' ,$this->strategy->getTableName($cm, $this->platform)); + } + + public function testJoinTableName() + { + $cm1 = $this->createClassMetadata('Doctrine\Tests\Models\CMS\CmsAddress'); + $cm2 = $this->createClassMetadata('Doctrine\Tests\Models\CMS\CmsAddress'); + + $cm1->mapManyToMany(array( + 'fieldName' => 'user', + 'targetEntity' => 'CmsUser', + 'inversedBy' => 'users', + 'joinTable' => array( + 'name' => '`cmsaddress_cmsuser`' + ) + )); + + $cm2->mapManyToMany(array( + 'fieldName' => 'user', + 'targetEntity' => 'CmsUser', + 'inversedBy' => 'users', + 'joinTable' => array( + 'name' => 'cmsaddress_cmsuser' + ) + ) + ); + + $this->assertEquals('"cmsaddress_cmsuser"', $this->strategy->getJoinTableName($cm1->associationMappings['user'], $cm1, $this->platform)); + $this->assertEquals('cmsaddress_cmsuser', $this->strategy->getJoinTableName($cm2->associationMappings['user'], $cm2, $this->platform)); + + } + + public function testIdentifierColumnNames() + { + $cm1 = $this->createClassMetadata('Doctrine\Tests\Models\CMS\CmsAddress'); + $cm2 = $this->createClassMetadata('Doctrine\Tests\Models\CMS\CmsAddress'); + + $cm1->mapField(array( + 'id' => true, + 'fieldName' => 'id', + 'columnName' => '`id`', + )); + + $cm2->mapField(array( + 'id' => true, + 'fieldName' => 'id', + 'columnName' => 'id', + )); + + $this->assertEquals(array('"id"'), $this->strategy->getIdentifierColumnNames($cm1, $this->platform)); + $this->assertEquals(array('id'), $this->strategy->getIdentifierColumnNames($cm2, $this->platform)); + } + + + public function testColumnAlias() + { + $i = 0; + $this->assertEquals('columnName0', $this->strategy->getColumnAlias('columnName', $i++, $this->platform)); + $this->assertEquals('column_name1', $this->strategy->getColumnAlias('column_name', $i++, $this->platform)); + $this->assertEquals('COLUMN_NAME2', $this->strategy->getColumnAlias('COLUMN_NAME', $i++, $this->platform)); + $this->assertEquals('COLUMNNAME3', $this->strategy->getColumnAlias('COLUMN-NAME-', $i++, $this->platform)); + } + + public function testQuoteIdentifierJoinColumns() + { + $cm = $this->createClassMetadata('Doctrine\Tests\Models\DDC117\DDC117ArticleDetails'); + + $cm->mapOneToOne(array( + 'id' => true, + 'fieldName' => 'article', + 'targetEntity' => 'Doctrine\Tests\Models\DDC117\DDC117Article', + 'joinColumns' => array(array( + 'name' => '`article`' + )), + )); + + $this->assertEquals(array('"article"'), $this->strategy->getIdentifierColumnNames($cm, $this->platform)); + } + + public function testJoinColumnName() + { + $cm = $this->createClassMetadata('Doctrine\Tests\Models\DDC117\DDC117ArticleDetails'); + + $cm->mapOneToOne(array( + 'id' => true, + 'fieldName' => 'article', + 'targetEntity' => 'Doctrine\Tests\Models\DDC117\DDC117Article', + 'joinColumns' => array(array( + 'name' => '`article`' + )), + )); + + $joinColumn = $cm->associationMappings['article']['joinColumns'][0]; + $this->assertEquals('"article"',$this->strategy->getJoinColumnName($joinColumn, $cm, $this->platform)); + } + + public function testReferencedJoinColumnName() + { + $cm = $this->createClassMetadata('Doctrine\Tests\Models\DDC117\DDC117ArticleDetails'); + + $cm->mapOneToOne(array( + 'id' => true, + 'fieldName' => 'article', + 'targetEntity' => 'Doctrine\Tests\Models\DDC117\DDC117Article', + 'joinColumns' => array(array( + 'name' => '`article`' + )), + )); + + $joinColumn = $cm->associationMappings['article']['joinColumns'][0]; + $this->assertEquals('"id"',$this->strategy->getReferencedJoinColumnName($joinColumn, $cm, $this->platform)); + } +} + +class MyQuoteStrategy extends \Doctrine\ORM\Mapping\DefaultQuoteStrategy +{ + +} \ No newline at end of file