public function ResourceGranularityUpdateTest::testMethodGranularityConvertedToResourceGranularity in Drupal 8
Tests rest_post_update_simplify_resource_granularity().
File
- core/
modules/ rest/ tests/ src/ Functional/ Update/ ResourceGranularityUpdateTest.php, line 36
Class
- ResourceGranularityUpdateTest
- Tests method-granularity REST config is simplified to resource-granularity.
Namespace
Drupal\Tests\rest\Functional\UpdateCode
public function testMethodGranularityConvertedToResourceGranularity() {
/** @var \Drupal\Core\Entity\EntityStorageInterface $resource_config_storage */
$resource_config_storage = $this->container
->get('entity_type.manager')
->getStorage('rest_resource_config');
// Make sure we have the expected values before the update.
$resource_config_entities = $resource_config_storage
->loadMultiple();
$this
->assertIdentical([
'entity.comment',
'entity.node',
'entity.user',
], array_keys($resource_config_entities));
$this
->assertIdentical('method', $resource_config_entities['entity.node']
->get('granularity'));
$this
->assertIdentical('method', $resource_config_entities['entity.comment']
->get('granularity'));
$this
->assertIdentical('method', $resource_config_entities['entity.user']
->get('granularity'));
// Read the existing 'entity:comment' and 'entity:user' resource
// configuration so we can verify it after the update.
$comment_resource_configuration = $resource_config_entities['entity.comment']
->get('configuration');
$user_resource_configuration = $resource_config_entities['entity.user']
->get('configuration');
$this
->runUpdates();
// Make sure we have the expected values after the update.
$resource_config_entities = $resource_config_storage
->loadMultiple();
$this
->assertIdentical([
'entity.comment',
'entity.node',
'entity.user',
], array_keys($resource_config_entities));
// 'entity:node' should be updated.
$this
->assertIdentical('resource', $resource_config_entities['entity.node']
->get('granularity'));
$this
->assertidentical($resource_config_entities['entity.node']
->get('configuration'), [
'methods' => [
'GET',
'POST',
'PATCH',
'DELETE',
],
'formats' => [
'hal_json',
],
'authentication' => [
'basic_auth',
],
]);
// 'entity:comment' should be unchanged.
$this
->assertIdentical('method', $resource_config_entities['entity.comment']
->get('granularity'));
$this
->assertIdentical($comment_resource_configuration, $resource_config_entities['entity.comment']
->get('configuration'));
// 'entity:user' should be unchanged.
$this
->assertIdentical('method', $resource_config_entities['entity.user']
->get('granularity'));
$this
->assertIdentical($user_resource_configuration, $resource_config_entities['entity.user']
->get('configuration'));
}