Package org.opengis.cite.ogcapifeatures10.conformance.core.collections

# Class FeaturesLimit

java.lang.Object
org.opengis.cite.ogcapifeatures10.conformance.CommonFixture
org.opengis.cite.ogcapifeatures10.conformance.CommonDataFixture
org.opengis.cite.ogcapifeatures10.conformance.core.collections.AbstractFeatures
org.opengis.cite.ogcapifeatures10.conformance.core.collections.FeaturesLimit

public class FeaturesLimit extends AbstractFeatures
A.2.7. Features {root}/collections/{collectionId}/items - Limit

Author:
  Lyn Goltz

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.opengis.cite.ogcapifeatures10.conformance.core.collections.AbstractFeatures

  `AbstractFeatures.CollectionResponseKey, AbstractFeatures.ResponseData`

- ## Field Summary

  ### Fields inherited from class org.opengis.cite.ogcapifeatures10.conformance.core.collections.AbstractFeatures

  `collectionIdAndResponse, collections, iut`

  ### Fields inherited from class org.opengis.cite.ogcapifeatures10.conformance.CommonDataFixture

  `noOfCollections`

  ### Fields inherited from class org.opengis.cite.ogcapifeatures10.conformance.CommonFixture

  `requestLoggingFilter, responseLoggingFilter, rootUri`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FeaturesLimit()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Iterator<Object[]>`
  `collectionItemUrisWithLimits(org.testng.ITestContext testContext)`
  collectionItemUrisWithLimits.
  `void`
  `limitParameterDefinition(TestPoint testPoint)`
  Abstract Test 16: /ats/core/fc-limit-definition Test Purpose: Validate that the bounding box query parameters are constructed corrrectly.
  `void`
  `validateFeaturesResponse_NumberReturned(Map<String,Object> collection, int limit, int max)`
  Abstract Test 22, Test Method 7 (Abstract Test 26)
  `void`
  `validateFeaturesWithLimitOperation(Map<String,Object> collection, int limit, int max)`
  Abstract Test 13: /ats/core/fc-op Test Purpose: Validate that features can be identified and extracted from a Collection using query parameters.
  `void`
  `validateFeaturesWithLimitResponse(Map<String,Object> collection, int limit, int max)`
  Abstract Test 17: /ats/core/fc-limit-response Test Purpose: Validate that the limit query parameters are processed correctly.
  `void`
  `validateFeaturesWithLimitResponse_FeaturesProperty(Map<String,Object> collection, int limit, int max)`
  Abstract Test 22, Test Method 2
  `void`
  `validateFeaturesWithLimitResponse_GeometryInCRS84(Map<String,Object> collection, int limit, int max)`
  Abstract Test 2, Test Method 1
  `void`
  `validateFeaturesWithLimitResponse_Links(Map<String,Object> collection, int limit, int max)`
  Abstract Test 22, Test Method 4 (Abstract Test 23)
  `void`
  `validateFeaturesWithLimitResponse_NumberMatched(Map<String,Object> collection, int limit, int max)`
  Abstract Test 22, Test Method 6 (Abstract Test 25)
  `void`
  `validateFeaturesWithLimitResponse_TimeStamp(Map<String,Object> collection, int limit, int max)`
  Abstract Test 22, Test Method 5 (Abstract Test 24)
  `void`
  `validateFeaturesWithLimitResponse_TypeProperty(Map<String,Object> collection, int limit, int max)`
  Abstract Test 22, Test Method 1

  ### Methods inherited from class org.opengis.cite.ogcapifeatures10.conformance.core.collections.AbstractFeatures

  `collectionPaths, isExplode, isRequired, retrieveRequiredInformationFromTestContext, validateFeaturesProperty, validateGeometriesInBBox, validateGeometriesInCrs84, validateLinks, validateNumberMatched, validateNumberReturned, validateTimeStamp, validateTypeProperty`

  ### Methods inherited from class org.opengis.cite.ogcapifeatures10.conformance.CommonDataFixture

  `createListOfMediaTypesToSupportForFeatureCollectionsAndFeatures, createListOfMediaTypesToSupportForFeatureCollectionsAndFeatures, createListOfMediaTypesToSupportForOtherResources, getApiModel, noOfCollections, requirementClasses, retrieveApiModel`

  ### Methods inherited from class org.opengis.cite.ogcapifeatures10.conformance.CommonFixture

  `clearMessages, getRequest, getResponse, init, initCommonFixture`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### FeaturesLimit

    public FeaturesLimit()

- ## Method Details

  - ### collectionItemUrisWithLimits

    @DataProvider(name="collectionItemUrisWithLimits") public Iterator<Object[]> collectionItemUrisWithLimits(org.testng.ITestContext testContext)

    collectionItemUrisWithLimits.

    Parameters:
      `testContext` - a `ITestContext` object
    Returns:
      a `Iterator` object

  - ### limitParameterDefinition

    public void limitParameterDefinition(TestPoint testPoint)

         Abstract Test 16: /ats/core/fc-limit-definition
         Test Purpose: Validate that the bounding box query parameters are constructed corrrectly.
         Requirement: /req/core/fc-limit-definition

         Test Method: Verify that the limit query parameter complies with the following definition (using an OpenAPI Specification 3.0 fragment):

         name: limit
         in: query
         required: false
         schema:
           type: integer
         style: form
         explode: false

         Note that the API can define values for "minimum", "maximum" and "default".

    Parameters:
      `testPoint` - the testPoint under test, never `null`

  - ### validateFeaturesWithLimitOperation

    public void validateFeaturesWithLimitOperation(Map<String,Object> collection, int limit, int max)

         Abstract Test 13: /ats/core/fc-op
         Test Purpose: Validate that features can be identified and extracted from a Collection using query parameters.
         Requirement: /req/core/fc-op

         Test Method
           1. For every feature collection identified in Collections, issue an HTTP GET request to the URL /collections/{collectionId}/items where {collectionId} is the id property for a Collection described in the Collections content.
           2. Validate that a document was returned with a status code 200.
           3. Validate the contents of the returned document using test /ats/core/fc-response.

         Repeat these tests using the following parameter tests:
         Limit:
           * Parameter /ats/core/fc-limit-definition
           * Response /ats/core/fc-limit-response

    Parameters:
      `collection` - the collection under test, never `null`
      `limit` - limit parameter to request, never `null`
      `max` - max limit defined by the service, never `null`

  - ### validateFeaturesWithLimitResponse

    public void validateFeaturesWithLimitResponse(Map<String,Object> collection, int limit, int max)

         Abstract Test 17: /ats/core/fc-limit-response
         Test Purpose: Validate that the limit query parameters are processed correctly.
         Requirement: /req/core/fc-limit-response

         Test Method
          1. Count the Features which are on the first level of the collection. Any nested objects contained within the explicitly requested items are not be counted.
          2. Verify that this count is not greater than the value specified by the limit parameter.
          3. If the API definition specifies a maximum value for limit parameter, verify that the count does not exceed this maximum value.

    Parameters:
      `collection` - the collection under test, never `null`
      `limit` - limit parameter to request, never `null`
      `max` - max limit defined by the service, never `null`

  - ### validateFeaturesWithLimitResponse_GeometryInCRS84

    public void validateFeaturesWithLimitResponse_GeometryInCRS84(Map<String,Object> collection, int limit, int max) throws org.locationtech.jts.io.ParseException
    Abstract Test 2, Test Method 1

         Abstract Test 2: /ats/core/crs84
         Test Purpose: Validate that all spatial geometries provided through the API are in the CRS84 spatial reference system unless otherwise requested by the client.
         Requirement: /req/core/crs84

         Test Method
          1. Do not specify a coordinate reference system in any request. All spatial data should be in the CRS84 reference system.
          2. Validate retrieved spatial data using the CRS84 reference system.

    Parameters:
      `collection` - the collection under test, never `null`
      `limit` - limit parameter to request, never `null`
      `max` - max limit defined by the service, never `null`
    Throws:
      `org.locationtech.jts.io.ParseException` - if the geometry could not be parsed

  - ### validateFeaturesWithLimitResponse_TypeProperty

    public void validateFeaturesWithLimitResponse_TypeProperty(Map<String,Object> collection, int limit, int max)
    Abstract Test 22, Test Method 1

         Abstract Test 22: /ats/core/fc-response
         Test Purpose: Validate that the Feature Collections complies with the require structure and contents.
         Requirement: /req/core/fc-response

         Test Method
           1. Validate that the type property is present and has a value of FeatureCollection

    Parameters:
      `collection` - the collection under test, never `null`
      `limit` - limit parameter to request, never `null`
      `max` - max limit defined by the service, never `null`

  - ### validateFeaturesWithLimitResponse_FeaturesProperty

    public void validateFeaturesWithLimitResponse_FeaturesProperty(Map<String,Object> collection, int limit, int max)
    Abstract Test 22, Test Method 2

         Abstract Test 22: /ats/core/fc-response
         Test Purpose: Validate that the Feature Collections complies with the require structure and contents.
         Requirement: /req/core/fc-response

         Test Method
           2. Validate the features property is present and that it is populated with an array of feature items.

    Parameters:
      `collection` - the collection under test, never `null`
      `limit` - limit parameter to request, never `null`
      `max` - max limit defined by the service, never `null`

  - ### validateFeaturesWithLimitResponse_Links

    public void validateFeaturesWithLimitResponse_Links(Map<String,Object> collection, int limit, int max)
    Abstract Test 22, Test Method 4 (Abstract Test 23)

         Abstract Test 22: /ats/core/fc-response
         Test Purpose: Validate that the Feature Collections complies with the require structure and contents.
         Requirement: /req/core/fc-response

         Test Method
           4. If the links property is present, validate that all entries comply with /ats/core/fc-links

         Abstract Test 23: /ats/core/fc-links
         Test Purpose: Validate that the required links are included in the Collections document.
         Requirement: /req/core/fc-links, /req/core/fc-rel-type

         Test Method:
         Verify that the response document includes:
           1. a link to this response document (relation: self),
           2. a link to the response document in every other media type supported by the server (relation: alternate).

         Verify that all links include the rel and type link parameters.

    Parameters:
      `collection` - the collection under test, never `null`
      `limit` - limit parameter to request, never `null`
      `max` - max limit defined by the service, never `null`

  - ### validateFeaturesWithLimitResponse_TimeStamp

    public void validateFeaturesWithLimitResponse_TimeStamp(Map<String,Object> collection, int limit, int max)
    Abstract Test 22, Test Method 5 (Abstract Test 24)

         Abstract Test 22: /ats/core/fc-response
         Test Purpose: Validate that the Feature Collections complies with the require structure and contents.
         Requirement: /req/core/fc-response

         Test Method
           5. If the timeStamp property is present, validate that it complies with /ats/core/fc-timeStamp

         Abstract Test 24: /ats/core/fc-timeStamp
         Test Purpose: Validate the timeStamp parameter returned with a Features response
         Requirement: /req/core/fc-timeStamp

         Test Method: Validate that the timeStamp value is set to the time when the response was generated.

    Parameters:
      `collection` - the collection under test, never `null`
      `limit` - limit parameter to request, never `null`
      `max` - max limit defined by the service, never `null`

  - ### validateFeaturesWithLimitResponse_NumberMatched

    public void validateFeaturesWithLimitResponse_NumberMatched(Map<String,Object> collection, int limit, int max) throws URISyntaxException
    Abstract Test 22, Test Method 6 (Abstract Test 25)

         Abstract Test 22: /ats/core/fc-response
         Test Purpose: Validate that the Feature Collections complies with the require structure and contents.
         Requirement: /req/core/fc-response

         Test Method
           6. If the numberMatched property is present, validate that it complies with /ats/core/fc-numberMatched

         Abstract Test 25: /ats/core/fc-numberMatched
         Test Purpose: Validate the numberMatched parameter returned with a Features response
         Requirement: /req/core/fc-numberMatched

         Test Method: Validate that the value of the numberMatched parameter is identical to the number of features in the feature collections that match the selection parameters like bbox, datetime or additional filter parameters.

    Parameters:
      `collection` - the collection under test, never `null`
      `limit` - limit parameter to request, never `null`
      `max` - max limit defined by the service, never `null`
    Throws:
      `URISyntaxException` - if the creation of a uri fails

  - ### validateFeaturesResponse_NumberReturned

    public void validateFeaturesResponse_NumberReturned(Map<String,Object> collection, int limit, int max)
    Abstract Test 22, Test Method 7 (Abstract Test 26)

         Abstract Test 22: /ats/core/fc-response
         Test Purpose: Validate that the Feature Collections complies with the require structure and contents.
         Requirement: /req/core/fc-response

         Test Method
           7. If the numberReturned property is present, validate that it complies with /ats/core/fc-numberReturned

         Abstract Test 26: /ats/core/fc-numberReturned
         Test Purpose: Validate the numberReturned parameter returned with a Features response
         Requirement: /req/core/fc-numberReturned

         Test Method: Validate that the numberReturned value is identical to the number of features in the response.

    Parameters:
      `collection` - the collection under test, never `null`
      `limit` - limit parameter to request, never `null`
      `max` - max limit defined by the service, never `null`