public function EntitySerializationTest::testNormalize

Test the normalize function.

File

drupal/core/modules/serialization/lib/Drupal/serialization/Tests/EntitySerializationTest.php, line 74
Contains \Drupal\serialization\Tests\EntitySerializationTest.

Class

EntitySerializationTest
Tests entity normalization and serialization of supported core formats.

Namespace

Drupal\serialization\Tests

Code

public function testNormalize() {
  $expected = array(
    'id' => array(
      array(
        'value' => 1,
      ),
    ),
    'revision_id' => array(
      array(
        'value' => 1,
      ),
    ),
    'uuid' => array(
      array(
        'value' => $this->entity
          ->uuid(),
      ),
    ),
    'langcode' => array(
      array(
        'value' => Language::LANGCODE_NOT_SPECIFIED,
      ),
    ),
    'default_langcode' => array(
      array(
        'value' => NULL,
      ),
    ),
    'name' => array(
      array(
        'value' => $this->values['name'],
      ),
    ),
    'type' => array(
      array(
        'value' => 'entity_test_mulrev',
      ),
    ),
    'user_id' => array(
      array(
        'target_id' => $this->values['user_id'],
      ),
    ),
    'field_test_text' => array(
      array(
        'value' => $this->values['field_test_text']['value'],
        'format' => $this->values['field_test_text']['format'],
      ),
    ),
  );
  $normalized = $this->serializer
    ->normalize($this->entity);
  foreach (array_keys($expected) as $fieldName) {
    $this
      ->assertEqual($expected[$fieldName], $normalized[$fieldName], "ComplexDataNormalizer produces expected array for {$fieldName}.");
  }
  $this
    ->assertEqual(array_diff_key($normalized, $expected), array(), 'No unexpected data is added to the normalized array.');
}