Merge pull request #6494 from astepin/gh-6356
Add failing test for #6314 and PR #6356
This commit is contained in:
commit
41bcdb3268
@ -1731,8 +1731,12 @@ public function __construct(<params>)
|
|||||||
|
|
||||||
$embedded = ['class="' . $embeddedClass['class'] . '"'];
|
$embedded = ['class="' . $embeddedClass['class'] . '"'];
|
||||||
|
|
||||||
if (isset($fieldMapping['columnPrefix'])) {
|
if (isset($embeddedClass['columnPrefix'])) {
|
||||||
$embedded[] = 'columnPrefix=' . var_export($embeddedClass['columnPrefix'], true);
|
if (is_string($embeddedClass['columnPrefix'])) {
|
||||||
|
$embedded[] = 'columnPrefix="' . $embeddedClass['columnPrefix'] . '"';
|
||||||
|
} else {
|
||||||
|
$embedded[] = 'columnPrefix=' . var_export($embeddedClass['columnPrefix'], true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$lines[] = $this->spaces . ' * @' .
|
$lines[] = $this->spaces . ' * @' .
|
||||||
|
@ -119,7 +119,7 @@ class EntityGeneratorTest extends OrmTestCase
|
|||||||
/**
|
/**
|
||||||
* @return ClassMetadataInfo
|
* @return ClassMetadataInfo
|
||||||
*/
|
*/
|
||||||
private function generateIsbnEmbeddableFixture(array $embeddedClasses = [])
|
private function generateIsbnEmbeddableFixture(array $embeddedClasses = [], $columnPrefix = null)
|
||||||
{
|
{
|
||||||
$metadata = new ClassMetadataInfo($this->_namespace . '\EntityGeneratorIsbn');
|
$metadata = new ClassMetadataInfo($this->_namespace . '\EntityGeneratorIsbn');
|
||||||
$metadata->namespace = $this->_namespace;
|
$metadata->namespace = $this->_namespace;
|
||||||
@ -131,7 +131,7 @@ class EntityGeneratorTest extends OrmTestCase
|
|||||||
$metadata->mapField(['fieldName' => 'checkDigit', 'type' => 'integer']);
|
$metadata->mapField(['fieldName' => 'checkDigit', 'type' => 'integer']);
|
||||||
|
|
||||||
foreach ($embeddedClasses as $fieldName => $embeddedClass) {
|
foreach ($embeddedClasses as $fieldName => $embeddedClass) {
|
||||||
$this->mapEmbedded($fieldName, $metadata, $embeddedClass);
|
$this->mapEmbedded($fieldName, $metadata, $embeddedClass, $columnPrefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->_generator->writeEntityClass($metadata, $this->_tmpDir);
|
$this->_generator->writeEntityClass($metadata, $this->_tmpDir);
|
||||||
@ -224,6 +224,39 @@ class EntityGeneratorTest extends OrmTestCase
|
|||||||
return new $metadata->name;
|
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()
|
public function testGeneratedEntityClass()
|
||||||
{
|
{
|
||||||
$testMetadata = $this->generateTestEmbeddableFixture();
|
$testMetadata = $this->generateTestEmbeddableFixture();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user