Skip to content

Commit

Permalink
1.0.3
Browse files Browse the repository at this point in the history
  • Loading branch information
Gematik-Entwicklung committed Dec 20, 2024
1 parent 59e3e77 commit 8bebcab
Show file tree
Hide file tree
Showing 7 changed files with 36 additions and 20 deletions.
9 changes: 9 additions & 0 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Release Notes KOB Testsuite

## Release 1.0.3

* Updated
* added check for HTTP Header `x-useragent` in outer HTTP request (not VAU encrypted part) within KOB and optional testcase
* added regex check for HTTP Header `x-useragent` in inner HTTP request within optional testcases
* checking HTTP header field name `x-useragent`, `x-insurantid` & `VAU-nonPU-Tracing` is now case-insensitive (as in standard RFC-9110 Section-5.1 )
* Bugs
* Fixed missing correction in testcase for IBM and RISE resp.

## Release 1.0.2

* Upgrade to Tiger 3.4.6
Expand Down
2 changes: 1 addition & 1 deletion dc-testsuite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: dc-testsuite-kob
services:
kob-testsuite:
image: gematik1/kob-testsuite:1.0.2
image: gematik1/kob-testsuite:1.0.3
container_name: kob-testsuite
environment:
- MAVEN_OPTS=-Dcucumber.filter.tags=${TESTSUITE_TESTS}
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

<groupId>de.gematik</groupId>
<artifactId>kob-testsuite</artifactId>
<version>1.0.2</version>
<version>1.0.3</version>
<packaging>jar</packaging>
<description>KOB Testsuite fuer PS Hersteller</description>

Expand Down
13 changes: 8 additions & 5 deletions src/test/resources/features/epa_3_0/kob_epa3_0.feature
Original file line number Diff line number Diff line change
Expand Up @@ -37,19 +37,20 @@ Funktion: KOB Testsuite for EPA 3.0
Dann TGR prüfe aktueller Request stimmt im Knoten "$.method" überein mit "POST"
Und TGR prüfe aktueller Request stimmt im Knoten "$.header.[~'content-type']" überein mit "application/octet-stream"
Und TGR prüfe aktueller Request stimmt im Knoten "$.header.[~'host']" überein mit "epa-as-1.dev.epa4all.de.*"
Und TGR prüfe aktueller Request stimmt im Knoten "$.header.[~'x-useragent']" überein mit "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"

# Und nun die Struktur der inneren Anfrage (der VAU-verschlüsselte HTTP-Request)
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.method" überein mit "GET"
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.header.['x-insurantid']" überein mit "${kob.kvnrIbm}"
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.header.['x-useragent']" überein mit "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.header.[~'x-insurantid']" überein mit "${kob.kvnrIbm}"
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.header.[~'x-useragent']" überein mit "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"

# Nun prüfen wir die Antwort des Downloads. Damit stellen wir sicher, dass der Server die Anfrage korrekt verstanden hat
Und TGR prüfe aktuelle Antwort stimmt im Knoten "$.responseCode" überein mit "200"
Und TGR prüfe aktuelle Antwort stimmt im Knoten "$.header.[~'content-type']" überein mit "application/octet-stream"

# Als letztes prüfen wir die Struktur der inneren Antwort (der VAU-verschlüsselte HTTP-Response)
Und TGR prüfe aktuelle Antwort stimmt im Knoten "$.body.decrypted.responseCode" überein mit "200"
Und TGR prüfe aktuelle Antwort stimmt im Knoten "$.body.decrypted.header.[~'content-type']" überein mit "(application\/fhir\+json|application\/pdf|text\/html)"
Und TGR prüfe aktuelle Antwort stimmt im Knoten "$.body.decrypted.header.[~'content-type']" überein mit "(application\/fhir\+json|application\/pdf|text\/html.*)"
Und TGR prüfe aktuelle Antwort stimmt im Knoten "$.body.decrypted.body" überein mit ".*"

Und TGR setze globale Variable "exec" auf "doneIBM"
Expand All @@ -72,6 +73,7 @@ Funktion: KOB Testsuite for EPA 3.0
Und TGR finde die letzte Anfrage mit Pfad ".*" und Knoten "$.header.[~'VAU-nonPU-Tracing']" der mit "[A-Za-z0-9+\/]{41,44}=? [A-Za-z0-9+\/]{41,44}=?" übereinstimmt
Dann TGR die Fehlermeldung wird gesetzt auf: "Das 'PU'-Flag im VAU-Header muss in der RU auf 0 gesetzt werden!"
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.header.pu" überein mit "0"
Und TGR lösche die benutzerdefinierte Fehlermeldung

# Wir überprüfen noch den Verkehr des Downloads selbst. Dazu müssen wir zunächst die Abfrage zum Auslösen des Downloads finden
Und TGR finde die letzte Anfrage mit Pfad ".*" und Knoten "$.body.decrypted.path.basicPath" der mit "(/epa/medication/api/v1/fhir/.*|/epa/medication/render/v1/eml/.*)" übereinstimmt
Expand All @@ -80,11 +82,12 @@ Funktion: KOB Testsuite for EPA 3.0
Dann TGR prüfe aktueller Request stimmt im Knoten "$.method" überein mit "POST"
Und TGR prüfe aktueller Request stimmt im Knoten "$.header.[~'content-type']" überein mit "application/octet-stream"
Und TGR prüfe aktueller Request stimmt im Knoten "$.header.[~'host']" überein mit "epa-as-2.dev.epa4all.de.*"
Und TGR prüfe aktueller Request stimmt im Knoten "$.header.[~'x-useragent']" überein mit "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"

# Und nun die Struktur der inneren Anfrage (der VAU-verschlüsselte HTTP-Request)
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.method" überein mit "GET"
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.header.['x-insurantid']" überein mit "${kob.kvnrRise}"
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.header.['x-useragent']" überein mit "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.header.[~'x-insurantid']" überein mit "${kob.kvnrRise}"
Und TGR prüfe aktueller Request stimmt im Knoten "$.body.decrypted.header.[~'x-useragent']" überein mit "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"

# Nun prüfen wir die Antwort des Downloads. Damit stellen wir sicher, dass der Server die Anfrage korrekt verstanden hat
Und TGR prüfe aktuelle Antwort stimmt im Knoten "$.responseCode" überein mit "200"
Expand Down
7 changes: 4 additions & 3 deletions src/test/resources/features/epa_3_0/opt_entitlement.feature
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,13 @@ Funktion: Test set entitlements by PS
Und TGR current request with attribute "$.method" matches "POST"
Und TGR current request with attribute "$.header.[~'accept']" matches ".*application/octet-stream.*"
Und TGR current request with attribute "$.header.[~'content-type']" matches "application/octet-stream"
Und TGR current request with attribute "$.header.['VAU-nonPU-Tracing']" matches ".* .*"
Und TGR current request with attribute "$.header.[~'VAU-nonPU-Tracing']" matches ".* .*"
Und TGR current request with attribute "$.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"
# inner request
Und TGR current request with attribute "$.body.decrypted.method" matches "POST"
Und TGR current request with attribute "$.body.decrypted.header.[~'accept']" matches ".*application/json.*"
Und TGR current request with attribute "$.body.decrypted.header.['x-useragent']" matches ".*"
Und TGR current request with attribute "$.body.decrypted.header.['x-insurantid']" matches ".*"
Und TGR current request with attribute "$.body.decrypted.header.[~'x-insurantid']" matches ".*"
Und TGR current request with attribute "$.body.decrypted.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"
Und TGR current request at "$.body.decrypted.body" matches as JSON:
"""
{
Expand Down
8 changes: 4 additions & 4 deletions src/test/resources/features/epa_3_0/opt_information.feature
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@ Funktion: Test information operations by PS
### get record status
# request
Und TGR find last request to path "/information/api/v1/ehr" with "$.method" matching "GET"
Und TGR current request with attribute "$.header.['x-insurantid']" matches ".*"
Und TGR current request with attribute "$.header.['x-useragent']" matches ".*"
Und TGR current request with attribute "$.header.[~'x-insurantid']" matches ".*"
Und TGR current request with attribute "$.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"

# response
Und TGR current response with attribute "$.responseCode" matches "204"
Expand All @@ -36,8 +36,8 @@ Funktion: Test information operations by PS
# request
Und TGR find last request to path "/information/api/v1/ehr/consentdecisions" with "$.method" matching "GET"
Und TGR current request with attribute "$.header.[~'accept']" matches ".*application/json.*"
Und TGR current request with attribute "$.header.['x-insurantid']" matches ".*"
Und TGR current request with attribute "$.header.['x-useragent']" matches ".*"
Und TGR current request with attribute "$.header.[~'x-insurantid']" matches ".*"
Und TGR current request with attribute "$.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"

# response
Und TGR current response with attribute "$.responseCode" matches "200"
Expand Down
15 changes: 9 additions & 6 deletions src/test/resources/features/epa_3_0/opt_login.feature
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@ Funktion: Test ePA login
Und TGR current request with attribute "$.method" matches "POST"
Und TGR current request with attribute "$.header.[~'accept']" matches ".*application/octet-stream.*"
Und TGR current request with attribute "$.header.[~'content-type']" matches "application/octet-stream"
Und TGR current request with attribute "$.header.['VAU-nonPU-Tracing']" matches ".* .*"
Und TGR current request with attribute "$.header.[~'VAU-nonPU-Tracing']" matches ".* .*"
Und TGR current request with attribute "$.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"
# inner request
Und TGR current request with attribute "$.body.decrypted.method" matches "GET"
Und TGR current request with attribute "$.body.decrypted.header.[~'accept']" matches ".*application/json.*"
Und TGR current request with attribute "$.body.decrypted.header.['x-useragent']" matches ".*"
Und TGR current request with attribute "$.body.decrypted.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"
# outer response
Und TGR current response with attribute "$.header.[~'content-type']" matches "application/octet-stream"
Und TGR current response with attribute "$.responseCode" matches "200"
Expand All @@ -43,10 +44,11 @@ Funktion: Test ePA login
Und TGR current request with attribute "$.method" matches "POST"
Und TGR current request with attribute "$.header.[~'accept']" matches ".*application/octet-stream.*"
Und TGR current request with attribute "$.header.[~'content-type']" matches "application/octet-stream"
Und TGR current request with attribute "$.header.['VAU-nonPU-Tracing']" matches ".* .*"
Und TGR current request with attribute "$.header.[~'VAU-nonPU-Tracing']" matches ".* .*"
Und TGR current request with attribute "$.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"
# inner request
Und TGR current request with attribute "$.body.decrypted.method" matches "GET"
Und TGR current request with attribute "$.body.decrypted.header.['x-useragent']" matches ".*"
Und TGR current request with attribute "$.body.decrypted.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"
# outer response
Und TGR current response with attribute "$.header.[~'content-type']" matches "application/octet-stream"
Und TGR current response with attribute "$.responseCode" matches "200"
Expand All @@ -70,11 +72,12 @@ Funktion: Test ePA login
Und TGR current request with attribute "$.method" matches "POST"
Und TGR current request with attribute "$.header.[~'accept']" matches ".*application/octet-stream.*"
Und TGR current request with attribute "$.header.[~'content-type']" matches "application/octet-stream"
Und TGR current request with attribute "$.header.['VAU-nonPU-Tracing']" matches ".* .*"
Und TGR current request with attribute "$.header.[~'VAU-nonPU-Tracing']" matches ".* .*"
Und TGR current request with attribute "$.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"
# inner request
Und TGR current request with attribute "$.body.decrypted.method" matches "POST"
Und TGR current request with attribute "$.body.decrypted.header.[~'content-type']" matches "application/json"
Und TGR current request with attribute "$.body.decrypted.header.['x-useragent']" matches ".*"
Und TGR current request with attribute "$.body.decrypted.header.[~'x-useragent']" matches "^[a-zA-Z0-9\-]{1,20}\/[a-zA-Z0-9\-\.]{1,15}$"

Und TGR current request at "$.body.decrypted.body" matches as JSON:
"""
Expand Down

0 comments on commit 8bebcab

Please sign in to comment.