function EntityResolverTest::testUuidEntityResolver

Test that fields referencing UUIDs can be denormalized.

File

drupal/core/modules/serialization/lib/Drupal/serialization/Tests/EntityResolverTest.php, line 58
Contains \Drupal\serialization\Tests\EntityResolverTest.

Class

EntityResolverTest

Namespace

Drupal\serialization\Tests

Code

function testUuidEntityResolver() {

  // Create an entity to get the UUID from.
  $entity = entity_create('entity_test_mulrev', array(
    'type' => 'entity_test_mulrev',
  ));
  $entity
    ->set('name', 'foobar');
  $entity
    ->set('field_test_entity_reference', array(
    array(
      'target_id' => 1,
    ),
  ));
  $entity
    ->save();
  $field_uri = url('rest/relation/entity_test_mulrev/entity_test_mulrev/field_test_entity_reference', array(
    'absolute' => TRUE,
  ));
  $data = array(
    '_links' => array(
      'type' => array(
        'href' => url('rest/type/entity_test_mulrev/entity_test_mulrev', array(
          'absolute' => TRUE,
        )),
      ),
      $field_uri => array(
        array(
          'href' => url('entity/entity_test_mulrev/' . $entity
            ->id()),
        ),
      ),
    ),
    '_embedded' => array(
      $field_uri => array(
        array(
          '_links' => array(
            'self' => url('entity/entity_test_mulrev/' . $entity
              ->id()),
          ),
          'uuid' => array(
            array(
              'value' => $entity
                ->uuid(),
            ),
          ),
        ),
      ),
    ),
  );
  $denormalized = $this->container
    ->get('serializer')
    ->denormalize($data, 'Drupal\\entity_test\\Plugin\\Core\\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.');
}