Giter Club home page Giter Club logo

ets-wps20's Introduction

Web Processing Service 2.0 Executable Test Suite

Scope

This executable test suite is for version 2.0 of the OGC Web Processing Service (WPS) standard.

Visit the project documentation website for more information, including the API documentation.

How to build the test suite

The test suite is built using Apache Maven v3.

Step 1. First clone the repo.

Step 2. Then navigate into the local repo.

cd ets-wps20

Step 3. Now clean the project.

mvn clean

Step 4. Now build the project.

mvn package

Note
On some operating systems, when building the ETS under Java 11+ for the first time, it may be necessary to run mvn package twice.
Note
Running mvn package will automatically update the jar file ets-wps20-x.x-SNAPSHOT.jar in the /ets-wps20/docker/teamengine/WEB-INF/lib. To disable this function, modify maven-antrun-plugin in the pom.xml file.

How to run the test suite

The options for running the suite are summarized in

How to contribute

If you would like to get involved, you can:

  • Report an issue such as a defect or an enhancement request

  • Help to resolve an open issue

  • Fix a bug: Fork the repository, apply the fix, and create a pull request

  • Add new tests: Fork the repository, implement and verify the tests on a new topic branch, and create a pull request (don’t forget to periodically rebase long-lived branches so there are no extraneous conflicts)

ets-wps20's People

Contributors

arieslai avatar dstenger avatar ghobona avatar jiann avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

geolabs jiann

ets-wps20's Issues

Output message when running the test suite: Failed to load class "org.slf4j.impl.StaticLoggerBinder"

Describe the bug
Output message showing SLF4J error:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

To Reproduce
Steps to reproduce the behavior:

  1. Run the test suite on Eclipse.
  2. The message will show in the Console tab.

Expected behavior
Although the message is shown, the test suite still runs successfully. Currently not sure what is missing.

Screenshots
Run with Eclipse.
image

Run with command: mvn clean install site -Dsource=8 -Pintegration-tests,docker
image

Issue with service not named org.n52.javaps.test.EchoProcess

Describe the bug
When running the ETS the following tests are failing in case the service is not identified as org.n52.javaps.test.EchoProcess or no input is identified as literalInput or no output is identified as literalOutput :

  • ValidInputDataTranmissionByValue
  • ValidOutDataTranmissionByValue
  • ValidInputDataTranmissionByReference
  • ValidOutDataTranmissionByReference

In other words, the template is read and used as-is with no modification.

To Reproduce
Run the ETS against any instance with an echo service identified with org.n52.javaps.test.EchoProcess1, or with an input identified as literalInput1, or with an output identified as literalOutput1. The tests listed here will fail.
Run the test again and use an IUT providing a service with the original name (org.n52.javaps.test.EchoProcess), more tests will succeed.

Expected behavior
Having the request always corresponding to the echo service provided by the IUT. In other words, having the template rewritten in the corresponding java methods using the same logic used in ValidEchoProcess.

Separate the tests into different java packages

The tests need to be separated into different java packages such that each conformance class has its own java package. The conformance classes are:

  • A.1 Basic WPS (Conformance Class) org.opengis.cite.wps20.basic
  • A.2 Synchronous WPS (Conformance Class) org.opengis.cite.wps20.synchronous
  • A.3 Asynchronous WPS (Conformance Class) org.opengis.cite.wps20.asynchronous
  • A.4 WPS Process Model Encoding (Conformance Class) org.opengis.cite.wps20.model
  • A.6 Dismiss Extension (Conformance Class) org.opengis.cite.wps20.dismiss

This is not a conformance class but it should have its own java package:

  • A.5 Basic tests org.opengis.cite.wps20.basictests

Version column on landing page and in drop down menu when selecting test suite displays 1.0 instead of 2.0

Describe the bug
The version column on landing page and in drop down menu when selecting test suite displays 1.0 instead of 2.0.
Thus, it is not possible to differentiate this test suite from WPS 1.0 test suite.

To Reproduce
Steps to reproduce the behavior:

  1. See landing page.
  2. Start test run and see drop down menu.

Expected behavior
Version 2.0 shall be displayed instead.

Screenshots
Landing page:
Bildschirmfoto vom 2022-09-29 18-01-06

Drop down menu when selecting test suite:
Bildschirmfoto vom 2022-09-29 18-01-46

Why using a not found URL when passing input by reference

Describe the bug
To pass the ValidInputDataTranmissionByReference test, it is required that IUT supports 404 as an acceptable status code when downloading a reference. Indeed, the file used as a template (https://github.com/opengeospatial/ets-wps20/blob/main/src/main/resources/org/opengis/cite/wps20/examples/ValidInputReference.xml) to provide an input by reference uses an URL which return 404.

To Reproduce
Run the ETS.

Expected behavior
Using a found URL (200) as reference for testing execution properly.
In case the input reference returns a 404, I think that the IUT should return an exception with a 400 status code.

Invalid README build steps

Describe the bug

After successfully running the steps up to mvn package, the resulting jar is generated in ./ets-wps20/target/ets-wps20-0.4-SNAPSHOT.jar (instead of ./ets-wps20/ets-wps20-0.4-SNAPSHOT.jar as mentioned in the README). The following Docker build command fails because it cannot find the JAR in the right location.

To Reproduce
Follow the build steps of the README.

The main problem seems related to the part:

cd /docker
Build the docker image.
docker build -t wps20:local .

I cannot find any other "docker" reference than https://github.com/opengeospatial/ets-wps20/tree/main/src/docker, which does not contain any of the expected build results.

The command produices the following error:

❯ docker build -t wps20:local .
[+] Building 0.4s (6/15)                                                                                                                                          docker:default
 => [internal] load build definition from Dockerfile                                                                                                                        0.0s
 => => transferring dockerfile: 926B                                                                                                                                        0.0s
 => [internal] load .dockerignore                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                             0.0s
 => [internal] load metadata for docker.io/library/tomcat:7.0-jre8                                                                                                          0.4s
 => CACHED [ 1/11] FROM docker.io/library/tomcat:7.0-jre8@sha256:3d6475354578a0b083f2e91700dcb8a1275dc5f574435276ce0ec69be588d6a3                                           0.0s
 => [internal] load build context                                                                                                                                           0.0s
 => => transferring context: 2B                                                                                                                                             0.0s
 => ERROR [ 2/11] ADD maven/dependency/teamengine-web-*.war /root/                                                                                                          0.0s
------
 > [ 2/11] ADD maven/dependency/teamengine-web-*.war /root/:
------
Dockerfile:4
--------------------
   2 |     
   3 |     # add TEAM engine webapp
   4 | >>> ADD maven/dependency/teamengine-web-*.war /root/
   5 |     RUN cd /root/ && unzip -q teamengine-web-*.war -d /usr/local/tomcat/webapps/teamengine
   6 |     
--------------------
ERROR: failed to solve: lstat /var/lib/docker/tmp/buildkit-mount2758450932/maven/dependency: no such file or directory

Expected behavior
Everything build and files are found automatically where expected.

Additional context

❯ mvn -v
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.20, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_CA, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-82-generic", arch: "amd64", family: "unix"

Execute requests seem to be wrong

Describe the bug
We can see in the available execute request example (https://schemas.opengis.net/wps/2.0/xml-examples/wpsExecuteRequestExample.xml) that the Data block is defined differently that in the ETS examples used as request templates (https://github.com/opengeospatial/ets-wps20/tree/main/src/main/resources/org/opengis/cite/wps20/examples).

In the official schemas.opengis.net, we have the following:

<wps:Input id="DISTANCE">
  <wps:Data>10.0</wps:Data>
</wps:Input>

In the ETS example, we have for instance, the following:

<wps:Input id="example.input.id">
  <wps:Data>
    <wps:LiteralValue>hello_literal</wps:LiteralValue>
  </wps:Data>
</wps:Input>

This extra LiteralValue block seems to be necessary to the default instance to work, but we don't see any in the official example.

To Reproduce
Deploy the ETS using docker

Expected behavior
The ETS should use Execute requests without extra block such as LiteralValue and ComplexData which are not defined in table 23 just after the figure 16.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.