-
Notifications
You must be signed in to change notification settings - Fork 87
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Abstract Test Suite #112
Comments
The ATS does provide testing for HTML, GeoJSON, GML-SF0, GML-SF2, and OpenAPI 3.0. However, these conformance classes do not come into play until you are way down in the details of individual tests. An additional section in the introduction which explains how the conformance classes are addressed may help. |
* clean-up adoc * support requirements for timeStamp, numberMatched, numberReturned * add and reference issue #112
I'm OK with your additions. We need to give some thought as to how far to go in content validation:
|
I just reviewed the current status of the ATS. These are a few general thoughts:
These are my comments targeting single tests (out of the perspective of the person implementing the tests):
I hope my thoughts help you to further improve the ATS. |
Re: Microservices. While it is true that WFS 3.0 is not restricted to microservices, it is also true that this is not a traditional OWS service. The REST/API design pattern essentially does away with the idea of a service in favor of a collection of web accessible resources. This has surprising impacts on how the "service" is designed and used. How do we foot-stomp that this is not Web Services as you know it? Using the term microservice vs. Web Service is one approach. |
RE: Test suite structure. The first version of the ATS followed the traditional requirement by requirement approach. It rapidly became unmanageable. This version uses a client-centric approach. It mimics the steps a client (or test engine) would have to execute to discover testable end-points and then execute them. Keep in mind that:
|
RE: OpenAPI. See the API section of the ATS. Development of a compliance test is almost impossible without some assumptions about the API description. This ATS assumes OpenAPI 3.0. Most of the OpenAPI 3.0 test suite will be reusable if we decide to test against Swagger or future versions of OpenAPI. |
RE: A.4.1.1. HTTP 1.1. Agree. I'm open to suggestions. |
RE: A.4.1.2, 4.4.11, 4.4.15. At a minimum the compliance test should support validation of the two encodings recommended for the core (HTML and GeoJSON). The two GML encodings should also be supported, but at a lower priority. Each encoding has a corresponding conformance class. You should be able to determine which encodings are supported through the /conformance path. We are exploring extensions to the OpenAPI Media Type Object which will allow us to associate a specific schema (ex. GML 3.2) with a response. This should provide a finer level of control over the encodings supported by each resource path. |
@cmheazel Thank you for the detailed answers. Re: Microservices RE: A.4.1.1. RE: OpenAPI
This should be marked clearly in ATS preconditions. For OpenAPI 3.0 this is already done but not for encodings. Maybe, the assumption can even be placed in a general preconditions or assumptions chapter? @ALL Especially the last section should be reviewed by other persons as well. |
RE: Microservices - RESTful service works for me. As long as we capture the concept that:
|
RE: A.4.1.1 - HTTP compliance |
RE: OpenAPI I tried to capture this concept in the ATS but clearly did not do a good enough job. Suggestions and contributions are welcome. |
In a RESTful world I think we have to treat each path as a discrete service. The basic approach is to crawl the OpenAPI document exploring each path. If the path is a WFS 3.0 defined path, then you evaluate it against the requirements for that path. If it is not a WFS 3.0 defined path then you ignore it. |
Currently, the abstract test suite just covers As already mentioned in the first comment, Requirement 33+ are not covered yet. Are there already any thoughts how to address the other conformance classes and how to integrate them in the abstract test suite? For implementation of test suite (ETS) it is important that the conformance classes are covered by different tests. |
@dstenger : In a number of places in the ATS you will find text like the following |
Thank you, yes, now I am seeing the connection. However, this leads to a general problem linking the Abstract Test Suite (ATS) to the Executable Test Suite (ETS). |
@dstenger - I pondered this issue as well. It isn't clear to me how you can structure the tests so that different conformance classes are separate ETS unless you re-run the entire test for each encoding. That doesn't seem to be an efficient approach to me. We could consider an alternate approach where you select the conformance classes first, then the test exercises all of the conformance classes selected. Or we could maintain that these are configuration parameters and not conformance classes at all. Are they really in the same class as - say - the Transaction extension? |
A.4.3.3. Process Server Object seems to be incomplete. The case that an URI template variable does not have have an enumerated set of valid values and no default value is not considered. |
In A.4.4.1. Validate /api path [1] a test method is not described. Also see opengeospatial/ets-ogcapi-features10#6 (comment) [1] https://rawgit.com/opengeospatial/WFS_FES/master/docs/17-069.html#_validate_api_path |
The test A.4.4.6. seems to be a copy from A.4.4.5., test step 2. does not describe Requirement 13: Test method:
Requirement 13:
Expected test method:
Also see opengeospatial/ets-ogcapi-features10#7 (comment) and opengeospatial/ets-ogcapi-features10#36 (comment) |
A.4.4.15. Validate the Get Feature Operation Response: Missing hint to assertion "All links SHALL include the rel and type link parameters." (Requirement 32). |
A.4.4.10. Validate the Get Features Operation Response, test method 6:
Shouldn't numberReturned be numberMatched in the last sentence? |
The Abstract Test Suite (Annex A) is work-in-progress. Currently, only a draft for the Core conformance class is available, the other five conformance classes (HTML, GeoJSON, GML-SF0, GML-SF2, OpenAPI 3.0) are not yet covered.
OGC Testbed 14 is expected to contribute, too.
The text was updated successfully, but these errors were encountered: