You are here

protected function ExportTest::validateTaxonomyTermCdfObject in Acquia Content Hub 8.2

Validates taxonomy term CDF object.

Parameters

string $name_expected: Expected term name.

string $bundle_expected: Expected bundle (vocabulary).

string $description_expected: Expected description.

File

tests/src/Kernel/ExportTest.php, line 1800

Class

ExportTest
Tests entity exports.

Namespace

Drupal\Tests\acquia_contenthub\Kernel

Code

protected function validateTaxonomyTermCdfObject($name_expected, $bundle_expected, $description_expected) {
  $this
    ->validateBaseCdfObject();
  $cdf = $this->cdfObject;

  // Validate Type attribute.
  $type = $cdf
    ->getType();
  $this
    ->assertEquals('drupal8_content_entity', $type);

  // Validate Metadata attribute.
  $metadata = $cdf
    ->getMetadata();
  $this
    ->assertNotEmpty($metadata['dependencies']['entity']);
  $vocabulary_uuid = key($metadata['dependencies']['entity']);
  unset($metadata['dependencies']);
  $metadata_expected = [
    'default_language' => 'en',
    'field' => [
      'uuid' => [
        'type' => 'uuid',
      ],
      'vid' => [
        'type' => 'entity_reference',
        'target' => 'taxonomy_vocabulary',
      ],
      'status' => [
        'type' => 'boolean',
      ],
      'name' => [
        'type' => 'string',
      ],
      'description' => [
        'type' => 'text_long',
      ],
      'weight' => [
        'type' => 'integer',
      ],
      'parent' => [
        'type' => 'entity_reference',
        'target' => 'taxonomy_term',
      ],
      'changed' => [
        'type' => 'changed',
      ],
      'default_langcode' => [
        'type' => 'boolean',
      ],
      'revision_created' => [
        'type' => 'created',
      ],
      'revision_user' => [
        'type' => 'entity_reference',
        'target' => 'user',
      ],
      'revision_log_message' => [
        'type' => 'string_long',
      ],
      'revision_default' => [
        'type' => 'boolean',
      ],
      'revision_translation_affected' => [
        'type' => 'boolean',
      ],
    ],
    'languages' => [
      'en',
    ],
    'version' => 2,
  ];
  unset($metadata['data']);
  $this
    ->assertEquals($metadata_expected, $metadata);

  // Validate "Data" attribute.
  $data = $this
    ->getCdfDataAttribute($cdf);
  $changed_timestamp = $data['changed']['value']['en']['value'];
  $is_timestamp = is_numeric($changed_timestamp) && (int) $changed_timestamp == $changed_timestamp;
  $this
    ->assertTrue($is_timestamp);
  unset($data['revision_user']);
  $data_expected = [
    'uuid' => [
      'value' => [
        'en' => [
          'value' => $cdf
            ->getUuid(),
        ],
      ],
    ],
    'parent' => [],
    'vid' => [
      'value' => [
        'en' => $vocabulary_uuid,
      ],
    ],
    'status' => [
      'value' => [
        'en' => '1',
      ],
    ],
    'name' => [
      'value' => [
        'en' => $name_expected,
      ],
    ],
    'description' => [
      'field_type' => 'text_long',
      'value' => [
        'en' => [
          [
            'value' => $description_expected,
            'format' => NULL,
          ],
        ],
      ],
    ],
    'weight' => [
      'value' => [
        'en' => '0',
      ],
    ],
    'changed' => [
      'value' => [
        'en' => [
          'value' => $changed_timestamp,
        ],
      ],
    ],
    'default_langcode' => [
      'value' => [
        'en' => '1',
      ],
    ],
    'revision_created' => [
      'value' => [
        'en' => [
          'value' => $changed_timestamp,
        ],
      ],
    ],
    'revision_log_message' => [
      'value' => [
        'en' => [],
      ],
    ],
    'revision_default' => [
      'value' => [
        'en' => '1',
      ],
    ],
    'revision_translation_affected' => [
      'value' => [
        'en' => '1',
      ],
    ],
  ];
  $this
    ->assertEquals($data_expected, $data);

  // Validate entity type.
  $entity_type = $this
    ->getCdfAttribute($cdf, 'entity_type');
  $this
    ->assertEquals('taxonomy_term', $entity_type);

  // Validate bundle.
  $bundle = $this
    ->getCdfAttribute($cdf, 'bundle');
  $this
    ->assertEquals($bundle_expected, $bundle);

  // Validate term name.
  $name = $this
    ->getCdfAttribute($cdf, 'label', 'en');
  $this
    ->assertEquals($name_expected, $name);
}