Skip to content

Commit 3171964

Browse files
authored
Merge pull request #2592 from doctrine/2.6.x-merge-up-into-2.7.x_XsdxUiZc
Merge release 2.6.1 into 2.7.x
2 parents 04cdfb3 + fc236da commit 3171964

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

lib/Doctrine/ODM/MongoDB/Mapping/Driver/XmlDriver.php

+1
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,7 @@ private function addEmbedMapping(ClassMetadata $class, SimpleXMLElement $embed,
393393
'name' => (string) $attributes['field'],
394394
'strategy' => (string) ($attributes['strategy'] ?? $defaultStrategy),
395395
'nullable' => isset($attributes['nullable']) ? ((string) $attributes['nullable'] === 'true') : false,
396+
'storeEmptyArray' => isset($attributes['store-empty-array']) ? ((string) $attributes['store-empty-array'] === 'true') : false,
396397
];
397398
if (isset($attributes['field-name'])) {
398399
$mapping['fieldName'] = (string) $attributes['field-name'];

tests/Doctrine/ODM/MongoDB/Tests/Mapping/AbstractMappingDriverTestCase.php

+11
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,17 @@ public function testShardKey(ClassMetadata $class): void
439439
self::assertEquals(4096, $shardKey['options']['numInitialChunks'], 'Shard key option has wrong value');
440440
}
441441

442+
/** @param ClassMetadata<AbstractMappingDriverUser> $class */
443+
#[Depends('testLoadMapping')]
444+
public function testStoreEmptyArray(ClassMetadata $class): void
445+
{
446+
$referenceMapping = $class->getFieldMapping('phonenumbers');
447+
$embeddedMapping = $class->getFieldMapping('otherPhonenumbers');
448+
449+
self::assertFalse($referenceMapping['storeEmptyArray']);
450+
self::assertFalse($embeddedMapping['storeEmptyArray']);
451+
}
452+
442453
public function testGridFSMapping(): void
443454
{
444455
$class = $this->dm->getClassMetadata(AbstractMappingDriverFile::class);

tests/Doctrine/ODM/MongoDB/Tests/Mapping/Driver/AbstractDriverTestCase.php

+4
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ public function testDriver(): void
125125
'isOwningSide' => true,
126126
'nullable' => false,
127127
'strategy' => ClassMetadata::STORAGE_STRATEGY_SET,
128+
'storeEmptyArray' => false,
128129
], $classMetadata->fieldMappings['address']);
129130

130131
self::assertEquals([
@@ -144,6 +145,7 @@ public function testDriver(): void
144145
'isOwningSide' => true,
145146
'nullable' => false,
146147
'strategy' => ClassMetadata::STORAGE_STRATEGY_PUSH_ALL,
148+
'storeEmptyArray' => false,
147149
], $classMetadata->fieldMappings['phonenumbers']);
148150

149151
self::assertEquals([
@@ -439,6 +441,7 @@ public function testNullableFieldsMapping(): void
439441
'isOwningSide' => true,
440442
'nullable' => true,
441443
'strategy' => ClassMetadata::STORAGE_STRATEGY_SET,
444+
'storeEmptyArray' => false,
442445
], $classMetadata->fieldMappings['address']);
443446

444447
self::assertEquals([
@@ -458,6 +461,7 @@ public function testNullableFieldsMapping(): void
458461
'isOwningSide' => true,
459462
'nullable' => true,
460463
'strategy' => ClassMetadata::STORAGE_STRATEGY_PUSH_ALL,
464+
'storeEmptyArray' => false,
461465
], $classMetadata->fieldMappings['phonenumbers']);
462466

463467
self::assertEquals([

0 commit comments

Comments
 (0)