View source
<?php
namespace Drupal\Tests\serialization\Kernel;
use Drupal\Core\Url;
use Drupal\entity_test\Entity\EntityTestMulRev;
use Drupal\field\Entity\FieldConfig;
use Drupal\field\Entity\FieldStorageConfig;
class EntityResolverTest extends NormalizerTestBase {
public static $modules = [
'hal',
'rest',
];
protected $format = 'hal_json';
protected function setUp() {
parent::setUp();
\Drupal::service('router.builder')
->rebuild();
FieldStorageConfig::create([
'entity_type' => 'entity_test_mulrev',
'field_name' => 'field_test_entity_reference',
'type' => 'entity_reference',
'settings' => [
'target_type' => 'entity_test_mulrev',
],
])
->save();
FieldConfig::create([
'entity_type' => 'entity_test_mulrev',
'field_name' => 'field_test_entity_reference',
'bundle' => 'entity_test_mulrev',
])
->save();
}
public function testUuidEntityResolver() {
$entity = EntityTestMulRev::create([
'type' => 'entity_test_mulrev',
]);
$entity
->set('name', 'foobar');
$entity
->set('field_test_entity_reference', [
[
'target_id' => 1,
],
]);
$entity
->save();
$field_uri = Url::fromUri('base:rest/relation/entity_test_mulrev/entity_test_mulrev/field_test_entity_reference', [
'absolute' => TRUE,
])
->toString();
$data = [
'_links' => [
'type' => [
'href' => Url::fromUri('base:rest/type/entity_test_mulrev/entity_test_mulrev', [
'absolute' => TRUE,
])
->toString(),
],
$field_uri => [
[
'href' => $entity
->toUrl()
->toString(),
],
],
],
'_embedded' => [
$field_uri => [
[
'_links' => [
'self' => $entity
->toUrl()
->toString(),
],
'uuid' => [
[
'value' => $entity
->uuid(),
],
],
],
],
],
];
$denormalized = $this->container
->get('serializer')
->denormalize($data, 'Drupal\\entity_test\\Entity\\EntityTestMulRev', $this->format);
$field_value = $denormalized
->get('field_test_entity_reference')
->getValue();
$this
->assertEqual($field_value[0]['target_id'], 1, 'Entity reference resolved using UUID.');
}
}