function ResourceTestBase::makeNormalizationInvalid

Same name in other branches
  1. 9 core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php \Drupal\Tests\jsonapi\Functional\ResourceTestBase::makeNormalizationInvalid()
  2. 8.9.x core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php \Drupal\Tests\jsonapi\Functional\ResourceTestBase::makeNormalizationInvalid()
  3. 11.x core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php \Drupal\Tests\jsonapi\Functional\ResourceTestBase::makeNormalizationInvalid()

Makes the given JSON:API document invalid.

Parameters

array $document: A JSON:API document.

string $entity_key: The entity key whose normalization to make invalid.

Return value

array The updated JSON:API document, now invalid.

2 calls to ResourceTestBase::makeNormalizationInvalid()
ResourceTestBase::doTestPatchIndividual in core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php
Tests PATCHing an individual resource, plus edge cases to ensure good DX.
ResourceTestBase::doTestPostIndividual in core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php
Tests POSTing an individual resource, plus edge cases to ensure good DX.
1 method overrides ResourceTestBase::makeNormalizationInvalid()
UserTest::makeNormalizationInvalid in core/modules/jsonapi/tests/src/Functional/UserTest.php
Makes the given JSON:API document invalid.

File

core/modules/jsonapi/tests/src/Functional/ResourceTestBase.php, line 890

Class

ResourceTestBase
Subclass this for every JSON:API resource type.

Namespace

Drupal\Tests\jsonapi\Functional

Code

protected function makeNormalizationInvalid(array $document, $entity_key) {
    $entity_type = $this->entity
        ->getEntityType();
    switch ($entity_key) {
        case 'label':
            // Add a second label to this entity to make it invalid.
            $label_field = $entity_type->hasKey('label') ? $entity_type->getKey('label') : static::$labelFieldName;
            $document['data']['attributes'][$label_field] = [
                0 => $document['data']['attributes'][$label_field],
                1 => 'Second Title',
            ];
            break;
        case 'id':
            $document['data']['attributes'][$entity_type->getKey('id')] = $this->anotherEntity
                ->id();
            break;
        case 'uuid':
            $document['data']['id'] = $this->anotherEntity
                ->uuid();
            break;
    }
    return $document;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.