Issue #2327935 by Arla, Anushka-mp: Allow empty entity IDs in EntityResolvers
parent
c791cc2d5a
commit
adb97dad3a
|
@ -103,7 +103,8 @@ class EntityReferenceItemNormalizer extends FieldItemNormalizer implements UuidR
|
|||
$field_item = $context['target_instance'];
|
||||
$field_definition = $field_item->getFieldDefinition();
|
||||
$target_type = $field_definition->getSetting('target_type');
|
||||
if ($id = $this->entityResolver->resolve($this, $data, $target_type)) {
|
||||
$id = $this->entityResolver->resolve($this, $data, $target_type);
|
||||
if (isset($id)) {
|
||||
return array('target_id' => $id);
|
||||
}
|
||||
return NULL;
|
||||
|
|
|
@ -43,7 +43,8 @@ class ChainEntityResolver implements ChainEntityResolverInterface {
|
|||
*/
|
||||
public function resolve(NormalizerInterface $normalizer, $data, $entity_type) {
|
||||
foreach ($this->resolvers as $resolver) {
|
||||
if ($resolved = $resolver->resolve($normalizer, $data, $entity_type)) {
|
||||
$resolved = $resolver->resolve($normalizer, $data, $entity_type);
|
||||
if (isset($resolved)) {
|
||||
return $resolved;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -110,6 +110,23 @@ class ChainEntityResolverTest extends UnitTestCase {
|
|||
$this->assertSame(10, $resolver->resolve($this->testNormalizer, $this->testData, $this->testEntityType));
|
||||
}
|
||||
|
||||
/**
|
||||
* Test the resolve method where one resolver returns 0.
|
||||
*
|
||||
* @covers ::__construct
|
||||
* @covers ::resolve
|
||||
*/
|
||||
public function testResolverWithResolvedToZero() {
|
||||
$resolvers = array(
|
||||
$this->createEntityResolverMock(0),
|
||||
$this->createEntityResolverMock(NULL, FALSE),
|
||||
);
|
||||
|
||||
$resolver = new ChainEntityResolver($resolvers);
|
||||
|
||||
$this->assertSame(0, $resolver->resolve($this->testNormalizer, $this->testData, $this->testEntityType));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a mock entity resolver.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue