diff --git a/artifacts/src/main/resources/catalog/catalog-request-message-schema.json b/artifacts/src/main/resources/catalog/catalog-request-message-schema.json new file mode 100644 index 0000000..5b76b4e --- /dev/null +++ b/artifacts/src/main/resources/catalog/catalog-request-message-schema.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://json-schema.org/draft/2019-09/schema", + "title": "CatalogRequestMessageSchema", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/CatalogRequestMessage" + } + ], + "$id": "https://w3id.org/dspace/2024/1/catalog/catalog-request-message-schema.json", + "definitions": { + "CatalogRequestMessage": { + "type": "object", + "properties": { + "@context": { + "$ref": "https://w3id.org/dspace/2024/1/common/context-schema.json" + }, + "@type": { + "type": "string", + "const": "CatalogRequestMessage" + }, + "filter": { + "type": "array" + } + }, + "required": [ + "@context", + "@type" + ] + } + } +} diff --git a/artifacts/src/main/resources/catalog/example/catalog-request-message.json b/artifacts/src/main/resources/catalog/example/catalog-request-message.json new file mode 100644 index 0000000..3ad0c52 --- /dev/null +++ b/artifacts/src/main/resources/catalog/example/catalog-request-message.json @@ -0,0 +1,7 @@ +{ + "@context": [ + "https://w3id.org/dspace/2024/1/context.json" + ], + "@type": "CatalogRequestMessage", + "filter": [] +} diff --git a/artifacts/src/test/java/org/eclipse/dsp/context/catalog/CatalogContextTest.java b/artifacts/src/test/java/org/eclipse/dsp/context/catalog/CatalogContextTest.java index e3aab4f..e616327 100644 --- a/artifacts/src/test/java/org/eclipse/dsp/context/catalog/CatalogContextTest.java +++ b/artifacts/src/test/java/org/eclipse/dsp/context/catalog/CatalogContextTest.java @@ -48,4 +48,10 @@ void verifyNestedCatalog() { verifyRoundTrip("/catalog/example/nested-catalog.json", "/catalog/catalog-schema.json"); } + + @Test + void verifyCatalogRequestMessage() { + verifyRoundTrip("/catalog/example/catalog-request-message.json", + "/catalog/catalog-request-message-schema.json"); + } } diff --git a/artifacts/src/test/java/org/eclipse/dsp/schema/catalog/CatalogRequestMessageSchemaTest.java b/artifacts/src/test/java/org/eclipse/dsp/schema/catalog/CatalogRequestMessageSchemaTest.java new file mode 100644 index 0000000..014d3cc --- /dev/null +++ b/artifacts/src/test/java/org/eclipse/dsp/schema/catalog/CatalogRequestMessageSchemaTest.java @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2024 SAP SE + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * SAP SE - extension to catalog request message + * + */ + +package org.eclipse.dsp.schema.catalog; + +import org.eclipse.dsp.schema.fixtures.AbstractSchemaTest; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.io.IOException; + +import static org.assertj.core.api.Assertions.assertThat; + +public class CatalogRequestMessageSchemaTest extends AbstractSchemaTest { + + @Test + void verifySchema() throws IOException { + var node = mapper.readTree(getClass().getResourceAsStream("/catalog/example/catalog-request-message.json")); + assertThat(schema.validate(node)).isEmpty(); + } + + @BeforeEach + void setUp() { + setUp("/catalog/catalog-request-message-schema.json"); + } + + +}