public function testPostIndividual() { // @todo Remove this in https://www.drupal.org/node/2300677.
if ($this->entity instanceof ConfigEntityInterface
) { $this->
markTestSkipped('POSTing config entities is not yet supported.'
);
} // Try with all of the following request bodies.
$unparseable_request_body = '!{>}<';
$parseable_valid_request_body = Json::
encode($this->
getPostDocument());
$parseable_invalid_request_body_missing_type = Json::
encode($this->
removeResourceTypeFromDocument($this->
getPostDocument()));
if ($this->entity->
getEntityType()->
hasKey('label'
)) { $parseable_invalid_request_body = Json::
encode($this->
makeNormalizationInvalid($this->
getPostDocument(), 'label'
));
} $parseable_invalid_request_body_2 = Json::
encode(NestedArray::
mergeDeep(['data' =>
['id' =>
$this->
randomMachineName(129
)]],
$this->
getPostDocument()));
$parseable_invalid_request_body_3 = Json::
encode(NestedArray::
mergeDeep(['data' =>
['attributes' =>
['field_rest_test' =>
$this->
randomString()]]],
$this->
getPostDocument()));
$parseable_invalid_request_body_4 = Json::
encode(NestedArray::
mergeDeep(['data' =>
['attributes' =>
['field_nonexistent' =>
$this->
randomString()]]],
$this->
getPostDocument()));
// The URL and Guzzle request options that will be used in this test. The
// request options will be modified/expanded throughout this test:
// - to first test all mistakes a developer might make, and assert that the
// error responses provide a good DX
// - to eventually result in a well-formed request that succeeds.
$url = Url::
fromRoute(sprintf('jsonapi.%s.collection.post',
static::
$resourceTypeName));