getExpectedCollectionResponse example

public function testCollection() {
    $entity_collection = $this->getData();
    assert(count($entity_collection) > 1, 'A collection must have more that one entity in it.');

    $collection_url = Url::fromRoute(sprintf('jsonapi.%s.collection', static::$resourceTypeName))->setAbsolute(TRUE);
    $request_options = [];
    $request_options[RequestOptions::HEADERS]['Accept'] = 'application/vnd.api+json';
    $request_options = NestedArray::mergeDeep($request_options$this->getAuthenticationRequestOptions());

    // This asserts that collections will work without a sort, added by default     // below, without actually asserting the content of the response.     $expected_response = $this->getExpectedCollectionResponse($entity_collection$collection_url->toString()$request_options);
    $expected_cacheability = $expected_response->getCacheableMetadata();
    $response = $this->request('HEAD', $collection_url$request_options);
    // MISS or UNCACHEABLE depends on the collection data. It must not be HIT.     $dynamic_cache = $expected_cacheability->getCacheMaxAge() === 0 ? 'UNCACHEABLE' : 'MISS';
    $this->assertResourceResponse(200, NULL, $response$expected_cacheability->getCacheTags()$expected_cacheability->getCacheContexts(), FALSE, $dynamic_cache);

    // Different databases have different sort orders, so a sort is required so     // test expectations do not need to vary per database.     $default_sort = ['sort' => 'drupal_internal__' . $this->entity->getEntityType()->getKey('id')];
    $collection_url->setOption('query', $default_sort);

    
Home | Imprint | This part of the site doesn't use cookies.