From a64152d211ad70e72a9cee036aa84f15f9c1077b Mon Sep 17 00:00:00 2001 From: Martin Vogel <martin.vogel@sinc.de> Date: Wed, 8 May 2024 10:39:24 +0200 Subject: [PATCH] refactor: adjust tests (planning#1950)) --- .../client/bootstrap/ApplicationConfigLoaderTest.java | 8 ++++---- .../core/cases/SecurityEventTokenServiceTest.java | 3 +-- .../core/schema/SchemaResourceProviderTest.java | 4 +--- .../core/validation/DefaultValidationServiceTest.java | 2 +- core/src/test/resources/set-schemas/set_schema_1.2.2.json | 1 + 5 files changed, 8 insertions(+), 10 deletions(-) create mode 100644 core/src/test/resources/set-schemas/set_schema_1.2.2.json diff --git a/client/src/test/java/dev/fitko/fitconnect/client/bootstrap/ApplicationConfigLoaderTest.java b/client/src/test/java/dev/fitko/fitconnect/client/bootstrap/ApplicationConfigLoaderTest.java index 3a3be0f5c..9aa9e696d 100644 --- a/client/src/test/java/dev/fitko/fitconnect/client/bootstrap/ApplicationConfigLoaderTest.java +++ b/client/src/test/java/dev/fitko/fitconnect/client/bootstrap/ApplicationConfigLoaderTest.java @@ -63,9 +63,9 @@ class ApplicationConfigLoaderTest { void testLoadConfigViaConfigBuilder() { // Given - var senderConfig = new SenderConfig("1", "123"); + final var senderConfig = new SenderConfig("1", "123"); - var subscriberConfig = SubscriberConfig.builder() + final var subscriberConfig = SubscriberConfig.builder() .clientId("2") .clientSecret("123") .privateDecryptionKeyPaths(List.of()) @@ -315,7 +315,7 @@ class ApplicationConfigLoaderTest { // Then assertNotNull(config); assertThat(config.getMetadataSchemaWriteVersion(), is(URI.create("https://schema.fitko.de/fit-connect/metadata/1.2.0/metadata.schema.json"))); - assertThat(config.getSetSchemaWriteVersion(), is(URI.create("https://schema.fitko.de/fit-connect/set-payload/1.2.1/set-payload.schema.json"))); + assertThat(config.getSetSchemaWriteVersion(), is(URI.create("https://schema.fitko.de/fit-connect/set-payload/1.2.2/set-payload.schema.json"))); } @Test @@ -331,7 +331,7 @@ class ApplicationConfigLoaderTest { // Then assertNotNull(config); assertThat(config.getMetadataSchemaWriteVersion(), is(URI.create("https://schema.fitko.de/fit-connect/metadata/1.2.0/metadata.schema.json"))); - assertThat(config.getSetSchemaWriteVersion(), is(URI.create("https://schema.fitko.de/fit-connect/set-payload/1.2.1/set-payload.schema.json"))); + assertThat(config.getSetSchemaWriteVersion(), is(URI.create("https://schema.fitko.de/fit-connect/set-payload/1.2.2/set-payload.schema.json"))); } private String getResourceAsString(final String name) throws IOException { diff --git a/core/src/test/java/dev/fitko/fitconnect/core/cases/SecurityEventTokenServiceTest.java b/core/src/test/java/dev/fitko/fitconnect/core/cases/SecurityEventTokenServiceTest.java index 03c17ed7a..99fceef68 100644 --- a/core/src/test/java/dev/fitko/fitconnect/core/cases/SecurityEventTokenServiceTest.java +++ b/core/src/test/java/dev/fitko/fitconnect/core/cases/SecurityEventTokenServiceTest.java @@ -4,7 +4,6 @@ import com.nimbusds.jose.JOSEException; import com.nimbusds.jose.JWSAlgorithm; import com.nimbusds.jose.JWSVerifier; import com.nimbusds.jose.crypto.RSASSAVerifier; -import com.nimbusds.jose.jwk.JWK; import com.nimbusds.jose.jwk.RSAKey; import com.nimbusds.jwt.SignedJWT; import dev.fitko.fitconnect.api.config.ApplicationConfig; @@ -65,7 +64,7 @@ class SecurityEventTokenServiceTest { signingKey = RSAKey.parse(getResourceAsString("/private_test_signing_key.json")); encryptionKey = RSAKey.parse(getResourceAsString("/public_encryption_test_key.json")); - final List<String> setSchemas = List.of(getResourceAsString("/set-schemas/set_schema_1.2.1.json")); + final List<String> setSchemas = List.of(getResourceAsString("/set-schemas/set_schema_1.2.2.json")); final List<String> metadataSchemas = List.of(getResourceAsString("/metadata-schemas/metadata_schema_1.2.0.json")); final List<String> destinationSchemas = List.of(getResourceAsString("/destination-schemas/destination_schema.json")); diff --git a/core/src/test/java/dev/fitko/fitconnect/core/schema/SchemaResourceProviderTest.java b/core/src/test/java/dev/fitko/fitconnect/core/schema/SchemaResourceProviderTest.java index dbead6cdf..23e79b16e 100644 --- a/core/src/test/java/dev/fitko/fitconnect/core/schema/SchemaResourceProviderTest.java +++ b/core/src/test/java/dev/fitko/fitconnect/core/schema/SchemaResourceProviderTest.java @@ -11,7 +11,6 @@ import dev.fitko.fitconnect.core.http.HttpClient; import dev.fitko.fitconnect.core.http.HttpResponse; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.CleanupMode; import org.junit.jupiter.api.io.TempDir; import java.io.IOException; @@ -26,7 +25,6 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.equalTo; import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; @@ -57,7 +55,7 @@ class SchemaResourceProviderTest { "https://schema.fitko.de/fim/s00000096_1.0.schema.xml", xmlSchemaPath.toString() ); - final List<String> setSchemas = List.of(getResourceAsString("/set-schemas/set_schema_1.2.1.json")); + final List<String> setSchemas = List.of(getResourceAsString("/set-schemas/set_schema_1.2.2.json")); final List<String> metadataSchemas = List.of(getResourceAsString("/metadata-schemas/metadata_schema_1.2.0.json")); final List<String> destinationSchemas = List.of(getResourceAsString("/destination-schemas/destination_schema.json")); diff --git a/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java b/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java index 44f339114..49ae6c1a5 100644 --- a/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java +++ b/core/src/test/java/dev/fitko/fitconnect/core/validation/DefaultValidationServiceTest.java @@ -113,7 +113,7 @@ class DefaultValidationServiceTest { defaultLocale = Locale.getDefault(); Locale.setDefault(Locale.ENGLISH); - final List<String> setSchemas = List.of(getResourceAsString("/set-schemas/set_schema_1.2.1.json")); + final List<String> setSchemas = List.of(getResourceAsString("/set-schemas/set_schema_1.2.2.json")); final List<String> metadataSchemas = List.of(getResourceAsString("/metadata-schemas/metadata_schema_1.2.0.json")); final List<String> destinationSchemas = List.of(getResourceAsString("/destination-schemas/destination_schema.json")); diff --git a/core/src/test/resources/set-schemas/set_schema_1.2.2.json b/core/src/test/resources/set-schemas/set_schema_1.2.2.json new file mode 100644 index 000000000..dc1816f95 --- /dev/null +++ b/core/src/test/resources/set-schemas/set_schema_1.2.2.json @@ -0,0 +1 @@ +{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://schema.fitko.de/fit-connect/set-payload/1.2.2/set-payload.schema.json","title":"Security Event Token","description":"Security Event Token (SET) nach RFC 8417","type":"object","properties":{"$schema":{"description":"URI des Schemas, dem dieser Security Event Token entspricht. Zulässig sind alle Schema-URLs mit enthaltener Version 1.x.y, wobei x und y beliebige Minor- und Patch-Versionen gemäß https://semver.org/ sein können.","type":"string","pattern":"^https://schema\\.fitko\\.de/fit-connect/set-payload/1\\.\\d+\\.\\d+/set-payload\\.schema\\.json$"},"jti":{"description":"Die JWT ID (jti) ist eine eindeutige UUID für das SET.","type":"string","format":"uuid"},"iss":{"description":"Als Issuer ('iss') wird die UUID der Destination eingetragen. Bei vom Zustelldienst ausgestellten SETs steht dort die Basis-URL des Zustelldienstes.","type":"string"},"iat":{"description":"The 'iat' (issued at) claim identifies the time at which the JWT was issued.","type":"integer","minimum":1577833200},"sub":{"description":"Beschreibt, ob das SET eine Submission oder einen Reply betrifft.","type":"string","pattern":"^(submission|reply):[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"txn":{"description":"Der Transaction Identifier ('txn') enthält 'case:' und die UUID des Cases.","type":"string","pattern":"^case:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"events":{"title":"Events","description":"Enthält genau eines der spezifizierten Events als Unterobjekt.","type":"object","properties":{"https://schema.fitko.de/fit-connect/events/create-submission":{"title":"Create Submission Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass eine Einreichung angelegt wurde.","type":"object"},"https://schema.fitko.de/fit-connect/events/submit-submission":{"title":"Submit Submission Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass die Einreichung abgesendet wurde.","type":"object","properties":{"authenticationTags":{"$ref":"#/$defs/authenticationTagsSubmission"}},"required":["authenticationTags"]},"https://schema.fitko.de/fit-connect/events/notify-submission":{"title":"Notify Submission Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass das empfangende System Kenntnis von der Einreichung erlangt hat. Wie dies erfolgt ist, wird mit dem Eintrag `notifyType` dokumentiert.","type":"object","properties":{"notifyType":{"type":"string","enum":["callback","polling"]}},"required":["notifyType"]},"https://schema.fitko.de/fit-connect/events/forward-submission":{"title":"Forward Submission Event","description":"Mit diesem Event dokumentiert ein nachgelagertes System, dass es die Einreichung zur Weiterleitung übernommen hat.","type":"object","deprecated":true},"https://schema.fitko.de/fit-connect/events/reject-submission":{"title":"Reject Submission Event","description":"Mit diesem Event dokumentiert das empfangende System, dass die Einreichung zurückgewiesen wird.","type":"object","properties":{"problems":{"$ref":"#/$defs/problems"}},"required":["problems"]},"https://schema.fitko.de/fit-connect/events/accept-submission":{"title":"Accept Submission Event","description":"Mit diesem Event dokumentiert das empfangende System, dass die Einreichung akzeptiert wurde.","type":"object","properties":{"problems":{"$ref":"#/$defs/problems"},"authenticationTags":{"$ref":"#/$defs/authenticationTagsSubmission"}},"required":["authenticationTags"]},"https://schema.fitko.de/fit-connect/events/delete-submission":{"title":"Delete Submission Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass die Einreichung gelöscht wurde.","type":"object"},"https://schema.fitko.de/fit-connect/events/create-reply":{"title":"Create Reply Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass eine Antwort angelegt wurde.","type":"object"},"https://schema.fitko.de/fit-connect/events/submit-reply":{"title":"Submit Reply Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass die Antwort abgesendet wurde.","type":"object","properties":{"authenticationTags":{"$ref":"#/$defs/authenticationTagsReply"}},"required":["authenticationTags"]},"https://schema.fitko.de/fit-connect/events/notify-reply":{"title":"Notify Reply Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass das sendende System Kenntnis von der Antwort erlangt hat. Wie dies erfolgt ist, wird mit dem Eintrag `notifyType` dokumentiert.","type":"object","properties":{"notifyType":{"type":"string","enum":["callback","polling"]}},"required":["notifyType"]},"https://schema.fitko.de/fit-connect/events/reject-reply":{"title":"Reject Reply Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass die Antwort zurückgewiesen wird.","type":"object","properties":{"problems":{"$ref":"#/$defs/problems"}},"required":["problems"]},"https://schema.fitko.de/fit-connect/events/accept-reply":{"title":"Accept Reply Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass die Antwort akzeptiert wurde.","type":"object","properties":{"problems":{"$ref":"#/$defs/problems"},"authenticationTags":{"$ref":"#/$defs/authenticationTagsReply"}},"required":["authenticationTags"]},"https://schema.fitko.de/fit-connect/events/delete-reply":{"title":"Delete Reply Event","description":"Mit diesem Event dokumentiert der Zustelldienst, dass die Antwort gelöscht wurde.","type":"object"}},"additionalProperties":false,"minProperties":1,"maxProperties":1}},"additionalProperties":false,"required":["$schema","jti","iss","iat","sub","txn","events"],"$defs":{"authenticationTagsSubmission":{"title":"Authentication Tags (Submission)","description":"Authentication Tags des Meta- und Fachdatensatzes sowie der Anlagen einer Submission.","type":"object","properties":{"metadata":{"$ref":"#/$defs/authenticationTag"},"data":{"$ref":"#/$defs/authenticationTag"},"attachments":{"$ref":"#/$defs/attachment"}},"additionalProperties":false,"required":["metadata"],"definitions":{"authenticationTag":{"$ref":"#/$defs/authenticationTag"},"attachment":{"$ref":"#/$defs/attachment"}}},"authenticationTagsReply":{"title":"Authentication Tags (Reply)","description":"Authentication Tags des Meta- und Fachdatensatzes sowie der Anlagen eines Replies","type":"object","properties":{"metadata":{"$ref":"#/$defs/authenticationTag"},"data":{"$ref":"#/$defs/authenticationTag"},"attachments":{"$ref":"#/$defs/attachment"}},"additionalProperties":false,"required":["metadata","data"],"definitions":{"authenticationTag":{"$ref":"#/$defs/authenticationTag"},"attachment":{"$ref":"#/$defs/attachment"}}},"problems":{"title":"Problems","description":"Liste von Validierungsproblemen.","type":"array","items":{"type":"object","properties":{"type":{"description":"Fehlercode in Form einer URI.","type":"string","pattern":"^https:\\/\\/schema\\.fitko\\.de\\/fit-connect\\/events\\/problems\\/[-a-z]+$"},"title":{"description":"Für Menschen verständliche Fehlermeldung","type":"string"},"detail":{"description":"Details zum Fehler, z.B. eine technische Fehlermeldung (optional)","type":"string"},"instance":{"description":"Betroffener Teil der Übertragung. Mögliche Werte: `data`, `metadata`, `attachment:` + UUID des Attachments, `reply`, `submission` oder `other`.","type":"string","pattern":"^(data|metadata|attachment:[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[4][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}|reply|submission|other)$"}},"required":["type","title","instance"]}},"authenticationTag":{"title":"Authentication Tag","description":"Struktur eines einzelnen Authentication Tags","type":"string","pattern":"^[a-zA-Z0-9-_=]+$","minLength":22,"maxLength":86},"attachment":{"title":"Attachment","type":"object","patternProperties":{"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$":{"$ref":"#/$defs/authenticationTag"}},"additionalProperties":false}}} \ No newline at end of file -- GitLab