org.opengis.cite.ogcapiedr10.landingpage.*
This executable test suite (ETS) verifies that an implementation of the OGC API - Environmental Data Retrieval standard conforms to standard and related parts.
Conformance testing is a kind of "black box" testing that examines externally visible characteristics or behaviors of the implementation and is independent of any implementation details.
Several conformance classes are defined in the principal specifications. The ones listed below are covered by this test suite:
Core
Collections
JSON
GeoJSON
EDR GeoJSON
Queries
The documents listed below stipulate requirements that the Executable Test Suite tests for compliance to. Only one of the standards listed below needs to be supported.
Note
|
It is recommended that developers implement OGC API - Environmental Data Retrieval, version 1.0.1 (OGC 19-086r5). |
There are some requirements the test suite expects to be satisfied by the service under test:
Pre-requisites for the Core and Collections conformance classes tests:
The API landing page response must be available in JSON.
The API definition response must be available in the JSON-encoded of OpenAPI 3.0.
The conformance declaration response must be available in JSON.
The collections metadata response and feature collection metadata responses must be available in JSON.
The collection metadata must declare support for data_queries, parameter_names, output_formats, spatial extent, and temporal extent
Collections and query responses must be available in either CoverageJSON or GeoJSON.
The CRS84 (http://www.opengis.net/def/crs/OGC/1.3/CRS84) coordinate reference system must be supported.
Pre-requisites for the GeoJSON conformance classes tests:
At least one collection must offer a Locations query that returns content encoded as GeoJSON.
Pre-requisites for the EDR GeoJSON conformance classes tests:
At least one collection must offer a Position query that returns content encoded as EDR GeoJSON and supports CRS84.
The test suite definition file (testng.xml) is located in the root package,
org.opengis.cite.ogcapiedr10
. A conformance class corresponds to a <test> element, each
of which includes a set of test classes that contain the actual test methods.
The general structure of the test suite is shown in Table 1.
Conformance class | Test classes |
---|---|
Core |
org.opengis.cite.ogcapiedr10.landingpage.* |
org.opengis.cite.ogcapiedr10.conformance.* |
org.opengis.cite.ogcapiedr10.corecollections.* |
Collections |
org.opengis.cite.ogcapiedr10.collections.* |
org.opengis.cite.ogcapiedr10.queries.* |
JSON |
org.opengis.cite.ogcapiedr10.encodings.json.* |
GeoJSON |
org.opengis.cite.ogcapiedr10.encodings.geojson.* |
EDR GeoJSON |
The Javadoc documentation provides more detailed information about the test methods that constitute the suite.
The options for running the test suite are summarized below.
As entry point the Landing Page of the OGC API - Environmental Data Retrieval 1.0 is expected.
Use a Java IDE such as Eclipse, NetBeans, or IntelliJ. Clone the repository and build the project.
Set the main class to run: org.opengis.cite.ogcapiedr10.TestNGController
Arguments: The first argument must refer to an XML properties file containing the
required test run arguments. If not specified, the default location at $
{user.home}/test-run-props.xml
will be used.
You can modify the sample file in src/main/config/test-run-props.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties version="1.0">
<comment>Test run arguments</comment>
<entry key="iut">https://host/capabilities</entry>
</properties>
The TestNG results file (testng-results.xml
) will be written to a subdirectory
in ${user.home}/testng/
having a UUID value as its name.
One of the build artifacts is an "all-in-one" JAR file that includes the test suite and all of its dependencies; this makes it very easy to execute the test suite in a command shell:
java -jar ets-ogcapi-edr10-0.1-SNAPSHOT-aio.jar [-o|--outputDir $TMPDIR] [test-run-props.xml]
This test suite comes with a Dockerfile which can be used to easily setup the OGC test harness with the test suite. Details can be found on Create Docker Image and create and start Docker Container.
Use TEAM Engine, the official OGC test harness. The latest test suite release are usually available at the beta testing facility. You can also build and deploy the test harness yourself and use a local installation.
Using the REST API of the TEAM Engine requires some run arguments. These ate summarized in Table 2. The Obligation descriptor can have the following values: M (mandatory), O (optional), or C (conditional).
Name | Value domain | Obligation | Description |
---|---|---|---|
iut |
URI |
M |
A URI that refers to the implementation under test or metadata about it. Ampersand ('&') characters must be percent-encoded as '%26'. |
apiDefinition |
A comma-separated list of string values. |
M |
A URI that refers to the API definition of the implementation under test. |