From b42143b50c1e258ee93ef2ec9c93cec674897781 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Ra=C4=8Dansk=C3=BD?= <lubos.racansky@wultra.com> Date: Wed, 27 Jul 2022 11:20:02 +0200 Subject: [PATCH] Fix #297: Prepare mock Digital Onboarding Adapter (#298) --- .../README.md | 19 ++++++ .../bin/wiremock.sh | 10 +++ .../pom.xml | 64 +++++++++++++++++++ .../__files/body-client-evaluate.json | 8 +++ .../__files/body-consent-storage.json | 1 + .../wiremock/__files/body-consent-text.json | 3 + .../test/wiremock/__files/body-otp-send.json | 3 + .../wiremock/__files/body-user-lookup.json | 4 ++ .../wiremock/mappings/client-evaluate.json | 13 ++++ .../wiremock/mappings/consent-storage.json | 13 ++++ .../test/wiremock/mappings/consent-text.json | 13 ++++ .../src/test/wiremock/mappings/otp-send.json | 13 ++++ .../test/wiremock/mappings/user-lookup.json | 13 ++++ pom.xml | 1 + 14 files changed, 178 insertions(+) create mode 100644 enrollment-server-onboarding-adapter-mock/README.md create mode 100755 enrollment-server-onboarding-adapter-mock/bin/wiremock.sh create mode 100644 enrollment-server-onboarding-adapter-mock/pom.xml create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-client-evaluate.json create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-consent-storage.json create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-consent-text.json create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-otp-send.json create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-user-lookup.json create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/client-evaluate.json create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/consent-storage.json create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/consent-text.json create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/otp-send.json create mode 100644 enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/user-lookup.json diff --git a/enrollment-server-onboarding-adapter-mock/README.md b/enrollment-server-onboarding-adapter-mock/README.md new file mode 100644 index 000000000..e0d4c6b7c --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/README.md @@ -0,0 +1,19 @@ +# Onboarding Adapter Mock + +Mock of onboarding adapter using [WireMock]. + +## Run + +**NOTE**: Before the first usage of the standalone [WireMock] please execute the following command: + +```bash +mvn clean package +``` + +You can start [WireMock] using the predefined script: + +```bash +./bin/wiremock.sh +``` + +[WireMock]: https://wiremock.org/docs/) diff --git a/enrollment-server-onboarding-adapter-mock/bin/wiremock.sh b/enrollment-server-onboarding-adapter-mock/bin/wiremock.sh new file mode 100755 index 000000000..9d7780d18 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/bin/wiremock.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +mydir=`dirname $0` +cd $mydir/.. + +java -jar target/dependency/wiremock-jre8-standalone.jar \ + --port 8090 \ + --root-dir "src/test/wiremock" \ + --verbose \ + --global-response-templating diff --git a/enrollment-server-onboarding-adapter-mock/pom.xml b/enrollment-server-onboarding-adapter-mock/pom.xml new file mode 100644 index 000000000..0171516d3 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/pom.xml @@ -0,0 +1,64 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ PowerAuth Enrollment Server + ~ Copyright (C) 2022 Wultra s.r.o. + ~ + ~ This program is free software: you can redistribute it and/or modify + ~ it under the terms of the GNU Affero General Public License as published + ~ by the Free Software Foundation, either version 3 of the License, or + ~ (at your option) any later version. + ~ + ~ This program is distributed in the hope that it will be useful, + ~ but WITHOUT ANY WARRANTY; without even the implied warranty of + ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ~ GNU Affero General Public License for more details. + ~ + ~ You should have received a copy of the GNU Affero General Public License + ~ along with this program. If not, see <http://www.gnu.org/licenses/>. + --> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>com.wultra.security</groupId> + <artifactId>enrollment-server-parent</artifactId> + <version>1.4.0-SNAPSHOT</version> + </parent> + + <artifactId>enrollment-server-onboarding-adapter-mock</artifactId> + <name>enrollment-server-onboarding-adapter-mock</name> + <description>Onboarding adapter mock for enrollment server.</description> + + <properties> + <wiremock.version>2.33.2</wiremock.version> + </properties> + + <build> + <plugins> + <plugin> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>copy-wiremock</id> + <goals> + <goal>copy</goal> + </goals> + </execution> + </executions> + <configuration> + <artifactItems> + <artifactItem> + <groupId>com.github.tomakehurst</groupId> + <artifactId>wiremock-jre8-standalone</artifactId> + <version>${wiremock.version}</version> + </artifactItem> + </artifactItems> + <stripVersion>true</stripVersion> + </configuration> + </plugin> + </plugins> + </build> + +</project> diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-client-evaluate.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-client-evaluate.json new file mode 100644 index 000000000..9c9144eac --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-client-evaluate.json @@ -0,0 +1,8 @@ +{ + "result": "OK", + "info": { + "aggregationResult": true, + "mdcCheck": true, + "documentsAccepted": true + } +} \ No newline at end of file diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-consent-storage.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-consent-storage.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-consent-storage.json @@ -0,0 +1 @@ +{} diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-consent-text.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-consent-text.json new file mode 100644 index 000000000..a523c2e22 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-consent-text.json @@ -0,0 +1,3 @@ +{ + "consentText": "<html><body><h1>Lorem ipsum</h1>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Etiam posuere lacus quis dolor. Nullam feugiat, turpis at pulvinar vulputate, erat libero tristique tellus, nec bibendum odio risus sit amet ante. Nullam at arcu a est sollicitudin euismod. Aliquam in lorem sit amet leo accumsan lacinia. Duis condimentum augue id magna semper rutrum. Sed convallis magna eu sem. Pellentesque arcu. Phasellus faucibus molestie nisl. Maecenas fermentum, sem in pharetra pellentesque, velit turpis volutpat ante, in pharetra metus odio a lectus. Nullam feugiat, turpis at pulvinar vulputate, erat libero tristique tellus, nec bibendum odio risus sit amet ante. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</body></html>" +} diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-otp-send.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-otp-send.json new file mode 100644 index 000000000..a68e82120 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-otp-send.json @@ -0,0 +1,3 @@ +{ + "otpSent": true +} diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-user-lookup.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-user-lookup.json new file mode 100644 index 000000000..45cb383b1 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/__files/body-user-lookup.json @@ -0,0 +1,4 @@ +{ + "userId": "mockuser_{{jsonPath request.body '$.identification.clientNumber'}}", + "consentRequired": true +} diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/client-evaluate.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/client-evaluate.json new file mode 100644 index 000000000..4c46e6ef0 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/client-evaluate.json @@ -0,0 +1,13 @@ +{ + "request": { + "method": "POST", + "url": "/client/evaluate" + }, + "response": { + "status": 200, + "headers": { + "Content-Type": "application/json" + }, + "bodyFileName": "body-client-evaluate.json" + } +} diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/consent-storage.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/consent-storage.json new file mode 100644 index 000000000..f28cc61e5 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/consent-storage.json @@ -0,0 +1,13 @@ +{ + "request": { + "method": "POST", + "url": "/consent/storage" + }, + "response": { + "status": 200, + "headers": { + "Content-Type": "application/json" + }, + "bodyFileName": "body-consent-storage.json" + } +} diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/consent-text.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/consent-text.json new file mode 100644 index 000000000..c7ce8406c --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/consent-text.json @@ -0,0 +1,13 @@ +{ + "request": { + "method": "POST", + "url": "/consent/text" + }, + "response": { + "status": 200, + "headers": { + "Content-Type": "application/json" + }, + "bodyFileName": "body-consent-text.json" + } +} diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/otp-send.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/otp-send.json new file mode 100644 index 000000000..2700439f4 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/otp-send.json @@ -0,0 +1,13 @@ +{ + "request": { + "method": "POST", + "url": "/otp/send" + }, + "response": { + "status": 200, + "headers": { + "Content-Type": "application/json" + }, + "bodyFileName": "body-otp-send.json" + } +} diff --git a/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/user-lookup.json b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/user-lookup.json new file mode 100644 index 000000000..c4b5d4777 --- /dev/null +++ b/enrollment-server-onboarding-adapter-mock/src/test/wiremock/mappings/user-lookup.json @@ -0,0 +1,13 @@ +{ + "request": { + "method": "POST", + "url": "/user/lookup" + }, + "response": { + "status": 200, + "headers": { + "Content-Type": "application/json" + }, + "bodyFileName": "body-user-lookup.json" + } +} diff --git a/pom.xml b/pom.xml index cd1d47aba..22efd44aa 100644 --- a/pom.xml +++ b/pom.xml @@ -78,6 +78,7 @@ <module>enrollment-server-api-model</module> <module>enrollment-server</module> <module>enrollment-server-onboarding</module> + <module>enrollment-server-onboarding-adapter-mock</module> <module>enrollment-server-onboarding-api-model</module> <module>enrollment-server-onboarding-common</module> </modules>