1
0
mirror of synced 2025-02-02 21:41:45 +03:00

Merge pull request #6494 from astepin/gh-6356

Add failing test for #6314  and PR #6356
This commit is contained in:
Marco Pivetta 2017-06-23 12:54:29 +02:00 committed by GitHub
commit 41bcdb3268
2 changed files with 41 additions and 4 deletions

View File

@ -1731,8 +1731,12 @@ public function __construct(<params>)
$embedded = ['class="' . $embeddedClass['class'] . '"'];
if (isset($fieldMapping['columnPrefix'])) {
$embedded[] = 'columnPrefix=' . var_export($embeddedClass['columnPrefix'], true);
if (isset($embeddedClass['columnPrefix'])) {
if (is_string($embeddedClass['columnPrefix'])) {
$embedded[] = 'columnPrefix="' . $embeddedClass['columnPrefix'] . '"';
} else {
$embedded[] = 'columnPrefix=' . var_export($embeddedClass['columnPrefix'], true);
}
}
$lines[] = $this->spaces . ' * @' .

View File

@ -119,7 +119,7 @@ class EntityGeneratorTest extends OrmTestCase
/**
* @return ClassMetadataInfo
*/
private function generateIsbnEmbeddableFixture(array $embeddedClasses = [])
private function generateIsbnEmbeddableFixture(array $embeddedClasses = [], $columnPrefix = null)
{
$metadata = new ClassMetadataInfo($this->_namespace . '\EntityGeneratorIsbn');
$metadata->namespace = $this->_namespace;
@ -131,7 +131,7 @@ class EntityGeneratorTest extends OrmTestCase
$metadata->mapField(['fieldName' => 'checkDigit', 'type' => 'integer']);
foreach ($embeddedClasses as $fieldName => $embeddedClass) {
$this->mapEmbedded($fieldName, $metadata, $embeddedClass);
$this->mapEmbedded($fieldName, $metadata, $embeddedClass, $columnPrefix);
}
$this->_generator->writeEntityClass($metadata, $this->_tmpDir);
@ -224,6 +224,39 @@ class EntityGeneratorTest extends OrmTestCase
return new $metadata->name;
}
/**
* @group GH-6314
*/
public function testEmbeddedEntityWithNamedColumnPrefix()
{
$columnPrefix = 'GH6314Prefix_';
$testMetadata = $this->generateTestEmbeddableFixture();
$isbnMetadata = $this->generateIsbnEmbeddableFixture(['testEmbedded' => $testMetadata], $columnPrefix);
$isbnEntity = $this->newInstance($isbnMetadata);
$refClass = new \ReflectionClass($isbnEntity);
self::assertTrue($refClass->hasProperty('testEmbedded'));
$docComment = $refClass->getProperty('testEmbedded')->getDocComment();
$needle = sprintf('@Embedded(class="%s", columnPrefix="%s")', $testMetadata->name, $columnPrefix);
self::assertContains($needle, $docComment);
}
/**
* @group GH-6314
*/
public function testEmbeddedEntityWithoutColumnPrefix()
{
$testMetadata = $this->generateTestEmbeddableFixture();
$isbnMetadata = $this->generateIsbnEmbeddableFixture(['testEmbedded' => $testMetadata], false);
$isbnEntity = $this->newInstance($isbnMetadata);
$refClass = new \ReflectionClass($isbnEntity);
self::assertTrue($refClass->hasProperty('testEmbedded'));
$docComment = $refClass->getProperty('testEmbedded')->getDocComment();
$needle = sprintf('@Embedded(class="%s", columnPrefix=false)', $testMetadata->name);
self::assertContains($needle, $docComment);
}
public function testGeneratedEntityClass()
{
$testMetadata = $this->generateTestEmbeddableFixture();