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_item = $context['target_instance'];
|
||||||
$field_definition = $field_item->getFieldDefinition();
|
$field_definition = $field_item->getFieldDefinition();
|
||||||
$target_type = $field_definition->getSetting('target_type');
|
$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 array('target_id' => $id);
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -43,7 +43,8 @@ class ChainEntityResolver implements ChainEntityResolverInterface {
|
||||||
*/
|
*/
|
||||||
public function resolve(NormalizerInterface $normalizer, $data, $entity_type) {
|
public function resolve(NormalizerInterface $normalizer, $data, $entity_type) {
|
||||||
foreach ($this->resolvers as $resolver) {
|
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;
|
return $resolved;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -110,6 +110,23 @@ class ChainEntityResolverTest extends UnitTestCase {
|
||||||
$this->assertSame(10, $resolver->resolve($this->testNormalizer, $this->testData, $this->testEntityType));
|
$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.
|
* Creates a mock entity resolver.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue