diff --git a/smp-resource-extensions/oasis-cppa3-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisCppa3CppHandlerTest.java b/smp-resource-extensions/oasis-cppa3-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisCppa3CppHandlerTest.java index 32fd0ead7a827f0826f8d9f8f3034d541cee5c7c..7c07518fc10daa131cb1604239a5959c93c749ad 100644 --- a/smp-resource-extensions/oasis-cppa3-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisCppa3CppHandlerTest.java +++ b/smp-resource-extensions/oasis-cppa3-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisCppa3CppHandlerTest.java @@ -43,7 +43,7 @@ public class OasisCppa3CppHandlerTest { Mockito.doReturn(resourceIdentifier).when(requestData).getResourceIdentifier(); Mockito.doReturn(baos).when(responseData).getOutputStream(); assertTrue(baos.size()>0); - System.out.println(baos.toString()); + // validate ByteArrayInputStream bios = new ByteArrayInputStream(baos.toByteArray()); Mockito.doReturn(bios).when(requestData).getResourceInputStream(); diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/OasisSMPExtension.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/OasisSMPExtension.java index 3b96a7442017e44dd75450700cc22b6cdc86596a..7213ce11a88f2f75fdb619058a02eddf0eb0b6ce 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/OasisSMPExtension.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/OasisSMPExtension.java @@ -13,7 +13,7 @@ import java.util.List; * @author Joze Rihtarsic * @since 5.0 * <p> - * Extension implementation for halding the Oasis SMP resources. + * Extension implementation for handling the Oasis SMP resources. */ @Service public class OasisSMPExtension implements ExtensionInfo { diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java index 08a37ae8c27d68b1f8cc5b56c894d787bd8d7d90..cf45c332c2f24eb7630fa9af802443a1b362ecf0 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java @@ -79,7 +79,7 @@ public class OasisSMPServiceGroup10Handler extends AbstractOasisSMPHandler { return; } - ServiceGroup serviceGroup = null; + ServiceGroup serviceGroup; try { serviceGroup = reader.parseNative(resourceData.getResourceInputStream()); } catch (TechnicalException e) { diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/validation/ServiceMetadata10Validator.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/validation/ServiceMetadata10Validator.java index 6f8304491c39fda529dadff69fdfb32e6289b039..b18d58039e6a1aa3ac7302328c6766dbcc65879e 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/validation/ServiceMetadata10Validator.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/validation/ServiceMetadata10Validator.java @@ -86,17 +86,17 @@ public class ServiceMetadata10Validator { ResourceIdentifier xmlResourceIdentifier = smpIdentifierApi.normalizeResourceIdentifier(participantId.getValue(), participantId.getScheme()); ResourceIdentifier xmlSubresourceIdentifier = smpIdentifierApi.normalizeSubresourceIdentifier(documentId.getValue(), documentId.getScheme()); - ResourceIdentifier nrmResIdentifierFromUrl = smpIdentifierApi.normalizeSubresourceIdentifier(participantIdentifierFromUrl.getValue(), participantIdentifierFromUrl.getScheme()); + ResourceIdentifier nrmResIdentifierFromUrl = smpIdentifierApi.normalizeResourceIdentifier(participantIdentifierFromUrl.getValue(), participantIdentifierFromUrl.getScheme()); ResourceIdentifier nrmDocIdentifierFromUrl = smpIdentifierApi.normalizeSubresourceIdentifier(documentIdentifierFromUrl.getValue(), documentIdentifierFromUrl.getScheme()); if (!xmlResourceIdentifier.equals(nrmResIdentifierFromUrl)) { // Business identifier must equal path - throw new ResourceException(INVALID_PARAMETERS, "Participant identifiers don't match between URL parameter [" + participantIdentifierFromUrl + "] and XML body: [" + xmlResourceIdentifier + "]"); + throw new ResourceException(INVALID_PARAMETERS, "Participant identifiers don't match between URL parameter [" + nrmResIdentifierFromUrl + "] and XML body: [" + xmlResourceIdentifier + "]"); } if (!xmlSubresourceIdentifier.equals(nrmDocIdentifierFromUrl)) { // Business identifier must equal path - throw new ResourceException(INVALID_PARAMETERS, "Document identifiers don't match between URL parameter [" + documentIdentifierFromUrl + "] and XML body: [" + xmlSubresourceIdentifier + "]"); + throw new ResourceException(INVALID_PARAMETERS, "Document identifiers don't match between URL parameter [" + xmlSubresourceIdentifier + "] and XML body: [" + xmlSubresourceIdentifier + "]"); } validateProcesses(serviceInformation); return serviceInformation; diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/OasisSMPExtensionTest.java b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/OasisSMPExtensionTest.java index 7814787da0adeb63af2a864f3e4fe8f2b8df74e7..5cef9ff847c4c97852bec88753ff2971715f2214 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/OasisSMPExtensionTest.java +++ b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/OasisSMPExtensionTest.java @@ -1,33 +1,59 @@ package eu.europa.ec.smp.spi; +import eu.europa.ec.smp.spi.def.OasisSMPServiceGroup10; +import eu.europa.ec.smp.spi.def.OasisSMPServiceGroup20; +import eu.europa.ec.smp.spi.resource.ResourceDefinitionSpi; import org.junit.jupiter.api.Test; +import org.mockito.Mock; +import org.mockito.Mockito; + +import java.util.List; import static org.junit.jupiter.api.Assertions.*; class OasisSMPExtensionTest { + OasisSMPServiceGroup10 mockOasisSMPServiceGroup10 = Mockito.mock(OasisSMPServiceGroup10.class); + OasisSMPServiceGroup20 mockOasisSMPServiceGroup20 = Mockito.mock(OasisSMPServiceGroup20.class); + + OasisSMPExtension testInstance = new OasisSMPExtension(mockOasisSMPServiceGroup10, mockOasisSMPServiceGroup20); @Test - void identifier() { - + void testIdentifier() { + + String result = testInstance.identifier(); + + assertEquals("edelivery-oasis-smp-extension", result); } @Test - void name() { + void testName() { + String result = testInstance.name(); + assertEquals("Oasis SMP 1.0 and 2.0", result); } @Test - void description() { + void testDescription() { + String result = testInstance.description(); + assertEquals("The extension implements Oasis SMP 1.0 and Oasis 2.0 document handlers", result); } @Test - void version() { + void testVersion() { + String result = testInstance.version(); + assertEquals("1.0", result); } @Test - void resourceTypes() { + void testResourceTypes() { + List<ResourceDefinitionSpi> result = testInstance.resourceTypes(); + assertEquals(2, result.size()); + assertEquals(mockOasisSMPServiceGroup10, result.get(0)); + assertEquals(mockOasisSMPServiceGroup20, result.get(1)); } @Test - void payloadValidators() { + void testPayloadValidators() { + List<PayloadValidatorSpi> result = testInstance.payloadValidators(); + assertEquals(0, result.size()); } } diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/converter/ServiceMetadataConverterTest.java b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/converter/ServiceMetadataConverterTest.java index c00c643f4aa143719886a0d214801bc25d48b1b1..68812bd907ee5c58aff86ed72d06ae653944a063 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/converter/ServiceMetadataConverterTest.java +++ b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/converter/ServiceMetadataConverterTest.java @@ -42,7 +42,7 @@ import static org.junit.jupiter.api.Assertions.*; public class ServiceMetadataConverterTest { private static final String NS = "http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"; - private static final String RES_PATH = "/examples/conversion/"; + private static final String RES_PATH = "/examples/oasis-smp-1.0/"; @Rule public ExpectedException expectedExeption = ExpectedException.none(); @@ -52,7 +52,7 @@ public class ServiceMetadataConverterTest { @Test public void testUnmarshalServiceInformation() throws Exception { //given - byte[] inputDoc = XmlTestUtils.loadDocumentAsByteArray(RES_PATH + "ServiceMetadataWithServiceInformation.xml"); + byte[] inputDoc = XmlTestUtils.loadDocumentAsByteArray(RES_PATH + "ServiceMetadataWithServiceOk.xml"); //when ServiceMetadata serviceMetadata = (ServiceMetadata) testInstance.parseNative(new ByteArrayInputStream(inputDoc)); @@ -122,7 +122,7 @@ public class ServiceMetadataConverterTest { @Test public void testToSignedServiceMetadataDocument() throws Exception { //given - byte[] inputDoc = XmlTestUtils.loadDocumentAsByteArray(RES_PATH + "ServiceMetadataWithServiceInformation.xml"); + byte[] inputDoc = XmlTestUtils.loadDocumentAsByteArray(RES_PATH + "ServiceMetadataWithServiceOk.xml"); //when Document signedServiceMetadataDoc = DomUtils.toSignedServiceMetadata10Document(inputDoc); @@ -134,8 +134,9 @@ public class ServiceMetadataConverterTest { NodeList children = root.getChildNodes(); assertEquals(1, children.getLength()); - byte[] resultServiceMetadata = XmlTestUtils.marshallToByteArray(children.item(0)); - assertTrue(Arrays.equals(inputDoc, resultServiceMetadata)); + assertEquals("ServiceMetadata", children.item(0).getLocalName()); + assertEquals(NS, children.item(0).getNamespaceURI()); + } @Test diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/AbstractHandlerTest.java b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/AbstractHandlerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..5f0d28e8f3f0f5ee1c409150790669247749f9c7 --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/AbstractHandlerTest.java @@ -0,0 +1,113 @@ +package eu.europa.ec.smp.spi.handler; + +import eu.europa.ec.smp.spi.api.SmpDataServiceApi; +import eu.europa.ec.smp.spi.api.SmpIdentifierServiceApi; +import eu.europa.ec.smp.spi.api.SmpXmlSignatureApi; +import eu.europa.ec.smp.spi.api.model.RequestData; +import eu.europa.ec.smp.spi.api.model.ResourceIdentifier; +import eu.europa.ec.smp.spi.api.model.ResponseData; +import eu.europa.ec.smp.spi.def.OasisSMPServiceGroup10; +import eu.europa.ec.smp.spi.exceptions.ResourceException; +import org.mockito.Mockito; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.util.Collections; + +import static org.junit.Assert.assertTrue; + +abstract class AbstractHandlerTest { + protected SmpDataServiceApi mockSmpDataApi = Mockito.mock(SmpDataServiceApi.class); + protected SmpIdentifierServiceApi mockSmpIdentifierServiceApi = Mockito.mock(SmpIdentifierServiceApi.class); + protected SmpXmlSignatureApi mockSignatureApi = Mockito.mock(SmpXmlSignatureApi.class); + + + protected RequestData requestData = Mockito.mock(RequestData.class); + protected ResponseData responseData = Mockito.mock(ResponseData.class); + + void readResourceAction(String resourceName, ResourceIdentifier resourceIdentifier) throws ResourceException { + readResourceAction(resourceName, resourceIdentifier, null); + } + + void readResourceAction(String resourceName, ResourceIdentifier resourceIdentifier, ResourceIdentifier subresourceIdentifier) throws ResourceException { + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + Mockito.doReturn(baos).when(responseData).getOutputStream(); + Mockito.doReturn(OasisSMPServiceGroup10.class.getResourceAsStream(resourceName)).when(requestData).getResourceInputStream(); + Mockito.doReturn(resourceIdentifier).when(requestData).getResourceIdentifier(); + if (subresourceIdentifier != null) { + Mockito.doReturn(subresourceIdentifier).when(requestData).getSubresourceIdentifier(); + } + + Mockito.when(mockSmpIdentifierServiceApi.normalizeResourceIdentifier(Mockito.anyString(), Mockito.anyString())).thenAnswer(i -> new ResourceIdentifier((String) i.getArguments()[0], (String) i.getArguments()[1])); + getTestInstance().readResource(requestData, responseData); + + assertTrue(baos.size() > 0); + } + + void storeResourceAction(String resourceName, ResourceIdentifier resourceIdentifier) throws ResourceException { + storeResourceAction(resourceName, resourceIdentifier, null); + } + + void storeResourceAction(String resourceName, ResourceIdentifier resourceIdentifier, ResourceIdentifier subresourceIdentifier) throws ResourceException { + + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + Mockito.doReturn(baos).when(responseData).getOutputStream(); + Mockito.doReturn(OasisSMPServiceGroup10.class.getResourceAsStream(resourceName)).when(requestData).getResourceInputStream(); + Mockito.doReturn(resourceIdentifier).when(requestData).getResourceIdentifier(); + if (subresourceIdentifier != null) { + Mockito.doReturn(subresourceIdentifier).when(requestData).getSubresourceIdentifier(); + Mockito.when(mockSmpIdentifierServiceApi.normalizeSubresourceIdentifier(Mockito.anyString(), Mockito.anyString())).thenAnswer(i -> new ResourceIdentifier((String) i.getArguments()[0], (String) i.getArguments()[1])); + } + Mockito.when(mockSmpIdentifierServiceApi.normalizeResourceIdentifier(Mockito.anyString(), Mockito.anyString())).thenAnswer(i -> new ResourceIdentifier((String) i.getArguments()[0], (String) i.getArguments()[1])); + + getTestInstance().storeResource(requestData, responseData); + } + + void validateResourceAction(String resourceName, ResourceIdentifier resourceIdentifier) throws ResourceException { + validateResourceAction(resourceName, resourceIdentifier, null); + } + + void validateResourceAction(String resourceName, ResourceIdentifier resourceIdentifier, ResourceIdentifier subresourceIdentifier) throws ResourceException { + // validate + if (subresourceIdentifier != null) { + Mockito.doReturn(subresourceIdentifier).when(requestData).getSubresourceIdentifier(); + Mockito.when(mockSmpIdentifierServiceApi.normalizeSubresourceIdentifier(Mockito.anyString(), Mockito.anyString())).thenAnswer(i -> new ResourceIdentifier((String) i.getArguments()[0], (String) i.getArguments()[1])); + } + Mockito.doReturn(OasisSMPServiceGroup10.class.getResourceAsStream(resourceName)).when(requestData).getResourceInputStream(); + Mockito.doReturn(resourceIdentifier).when(requestData).getResourceIdentifier(); + Mockito.when(mockSmpIdentifierServiceApi.normalizeResourceIdentifier(Mockito.anyString(), Mockito.anyString())).thenAnswer(i -> new ResourceIdentifier((String) i.getArguments()[0], (String) i.getArguments()[1])); + + + + getTestInstance().validateResource(requestData); + } + + + void generateResourceAction(ResourceIdentifier resourceIdentifier) throws ResourceException { + generateResourceAction(resourceIdentifier, null); + } + + void generateResourceAction(ResourceIdentifier resourceIdentifier, ResourceIdentifier subresourceIdentifier) throws ResourceException { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + Mockito.doReturn(resourceIdentifier).when(requestData).getResourceIdentifier(); + if (subresourceIdentifier != null) { + Mockito.doReturn(subresourceIdentifier).when(requestData).getSubresourceIdentifier(); + Mockito.when(mockSmpIdentifierServiceApi.normalizeSubresourceIdentifier(Mockito.anyString(), Mockito.anyString())).thenAnswer(i -> new ResourceIdentifier((String) i.getArguments()[0], (String) i.getArguments()[1])); + + } + Mockito.doReturn(baos).when(responseData).getOutputStream(); + + getTestInstance().generateResource(requestData, responseData, Collections.emptyList()); + assertTrue(baos.size() > 0); + + // The generated resource should be valid + ByteArrayInputStream bios = new ByteArrayInputStream(baos.toByteArray()); + Mockito.doReturn(bios).when(requestData).getResourceInputStream(); + Mockito.doReturn(resourceIdentifier).when(mockSmpIdentifierServiceApi).normalizeResourceIdentifier(Mockito.anyString(), Mockito.anyString()); + + getTestInstance().validateResource(requestData); + } + + abstract AbstractOasisSMPHandler getTestInstance(); +} diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10HandlerTest.java b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10HandlerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..9df2cbb5cee27986f4bde770cb3fc5207f172768 --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10HandlerTest.java @@ -0,0 +1,76 @@ +package eu.europa.ec.smp.spi.handler; + +import eu.europa.ec.smp.spi.api.model.ResourceIdentifier; +import eu.europa.ec.smp.spi.exceptions.ResourceException; +import org.hamcrest.MatcherAssert; +import org.junit.jupiter.api.Test; + +import static org.junit.Assert.assertThrows; + +class OasisSMPServiceGroup10HandlerTest extends AbstractHandlerTest { + @Override + public AbstractOasisSMPHandler getTestInstance() { + return new OasisSMPServiceGroup10Handler(mockSmpDataApi, mockSmpIdentifierServiceApi); + } + + @Test + void testGenerateResource() throws ResourceException { + + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("test-identifier", "test-test-test"); + + generateResourceAction(resourceIdentifier); + } + + @Test + void validateResourceOK() throws ResourceException { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:eu:ncpb:utest", "ehealth-actorid-qns"); + // validate + validateResourceAction("/examples/oasis-smp-1.0/ServiceGroupOK.xml", resourceIdentifier); + } + + @Test + void validateResourceDisallowedDocType() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:eu:ncpb:utest", "ehealth-actorid-qns"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-1.0/ServiceGroupWithDOCTYPE.xml", resourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("DOCTYPE is disallowed")); + } + + @Test + void validateResourceInvalidIdentifier() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:poland:ncpb:InvalidIdentifier", "ehealth-actorid-qns"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-1.0/ServiceGroupOK.xml", resourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("Participant identifiers don't match")); + } + + @Test + void validateResourceInvalidScheme() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:poland:ncpb:utestt", "ehealth-actorid-qns"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-1.0/ServiceGroupInvalidScheme.xml", resourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("SAXParseException")); + } + + @Test + void readResourceOK() throws ResourceException { + String resourceName = "/examples/oasis-smp-1.0/ServiceGroupOK.xml"; + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:eu:ncpb:utest", "ehealth-actorid-qns"); + + readResourceAction(resourceName, resourceIdentifier); + } + + + @Test + void storeResourceOK() throws ResourceException { + String resourceName = "/examples/oasis-smp-1.0/ServiceGroupOK.xml"; + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:eu:ncpb:utest", "ehealth-actorid-qns"); + + storeResourceAction(resourceName, resourceIdentifier); + } + + +} diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20HandlerTest.java b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20HandlerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..288b5cb3df2f42827c65b35494cfbd9ab163903b --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20HandlerTest.java @@ -0,0 +1,75 @@ +package eu.europa.ec.smp.spi.handler; + +import eu.europa.ec.smp.spi.api.model.ResourceIdentifier; +import eu.europa.ec.smp.spi.exceptions.ResourceException; +import org.hamcrest.MatcherAssert; +import org.junit.jupiter.api.Test; + +import static org.junit.Assert.assertThrows; + +class OasisSMPServiceGroup20HandlerTest extends AbstractHandlerTest { + @Override + public AbstractOasisSMPHandler getTestInstance() { + return new OasisSMPServiceGroup20Handler(mockSmpDataApi, mockSmpIdentifierServiceApi, mockSignatureApi); + } + + @Test + void testGenerateResource() throws ResourceException { + + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("test-identifier", "test-test-test"); + + generateResourceAction(resourceIdentifier); + } + + @Test + void validateResourceOK() throws ResourceException { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier( "9925:0367302178", "iso6523-actorid-upis"); + // validate + validateResourceAction("/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523.xml", resourceIdentifier); + } + + @Test + void validateResourceDisallowedDocType() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier( "9925:0367302178", "iso6523-actorid-upis"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523_DTD.xml", resourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("accessExternalDTD")); + } + + @Test + void validateResourceInvalidIdentifier() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier( "9925:0367302178:invalid", "iso6523-actorid-upis"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523.xml", resourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("Participant identifiers don't match")); + } + + @Test + void validateResourceInvalidScheme() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier( "9925:0367302178", "iso6523-actorid-upis"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523.xml", resourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("SAXParseException")); + } + + @Test + void readResourceOK() throws ResourceException { + String resourceName = "/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523.xml"; + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("iso6523-actorid-upis", "9925:0367302178"); + + readResourceAction(resourceName, resourceIdentifier); + } + + @Test + void storeResourceOK() throws ResourceException { + String resourceName = "/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523-no-references.xml"; + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("9925:0367302178", "iso6523-actorid-upis"); + + storeResourceAction(resourceName, resourceIdentifier); + } + + +} diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata10HandlerTest.java b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata10HandlerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..c242f616ed9f3846308342423287803d1f0b9eeb --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata10HandlerTest.java @@ -0,0 +1,96 @@ +package eu.europa.ec.smp.spi.handler; + +import eu.europa.ec.smp.spi.api.model.ResourceIdentifier; +import eu.europa.ec.smp.spi.exceptions.ResourceException; +import eu.europa.ec.smp.spi.validation.ServiceMetadata10Validator; +import org.hamcrest.MatcherAssert; +import org.junit.jupiter.api.Test; + +import static org.junit.Assert.assertThrows; + +class OasisSMPServiceMetadata10HandlerTest extends AbstractHandlerTest { + + + @Override + public AbstractOasisSMPHandler getTestInstance() { + return new OasisSMPServiceMetadata10Handler(mockSmpDataApi, mockSmpIdentifierServiceApi, mockSignatureApi, new ServiceMetadata10Validator(mockSmpIdentifierServiceApi)); + } + + @Test + void testGenerateResource() throws ResourceException { + + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("test-identifier", "test-test-test"); + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("test-subidentifier", "test-test-test"); + + generateResourceAction(resourceIdentifier, subResourceIdentifier); + } + + @Test + void validateResourceOK() throws ResourceException { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:eu:ncpb:utest", "ehealth-actorid-qns"); + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("urn::epsos##services:extended:epsos::107", "ehealth-resid-qns"); + // validate + validateResourceAction("/examples/oasis-smp-1.0/ServiceMetadataWithServiceOk.xml", resourceIdentifier, subResourceIdentifier); + } + + @Test + void validateResourceDisallowedDocType() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:poland:ncpb", "ehealth-actorid-qns"); + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("urn::epsos##services:extended:epsos::107", "ehealth-resid-qns"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-1.0/ServiceMetadataWithDOCTYPE.xml", resourceIdentifier, subResourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("DOCTYPE is disallowed")); + } + + @Test + void validateResourceInvalidIdentifier() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:poland:ncpb:wrongIdentifier", "ehealth-actorid-qns"); + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("urn::epsos##services:extended:epsos::101", "ehealth-resid-qns"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-1.0/ServiceMetadataWithServiceOk.xml", resourceIdentifier, subResourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("Participant identifiers don't match")); + } + + @Test + void validateResourceInvalidDocumentIdentifier() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:eu:ncpb:utest", "ehealth-actorid-qns"); + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("urn::epsos##services:extended:epsos::101:invalidIdentifeir", "ehealth-resid-qns"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-1.0/ServiceMetadataWithServiceOk.xml", resourceIdentifier, subResourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("Document identifiers don't match")); + } + + @Test + void validateResourceInvalidScheme() { + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:poland:ncpb", "ehealth-actorid-qns"); + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("urn::epsos##services:extended:epsos::10", "ehealth-resid-qns"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-1.0/ServiceMetadataMissingMandatoryFields.xml", resourceIdentifier, subResourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("SAXParseException")); + } + + @Test + void readResourceOK() throws ResourceException { + String resourceName = "/examples/oasis-smp-1.0/ServiceMetadataWithServiceOk.xml"; + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:eu:ncpb:utest", "ehealth-actorid-qns"); + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("urn::epsos##services:extended:epsos::10", "ehealth-resid-qns"); + + readResourceAction(resourceName, resourceIdentifier, subResourceIdentifier); + } + + + @Test + void storeResourceOK() throws ResourceException { + String resourceName = "/examples/oasis-smp-1.0/ServiceMetadataWithServiceOk.xml"; + ResourceIdentifier resourceIdentifier = new ResourceIdentifier("urn:eu:ncpb:utest", "ehealth-actorid-qns"); + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("urn::epsos##services:extended:epsos::107", "ehealth-resid-qns"); + + storeResourceAction(resourceName, resourceIdentifier, subResourceIdentifier); + } + + +} diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20HandlerTest.java b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20HandlerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..ed7db215f05cec423def22fada0cfc434606a867 --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20HandlerTest.java @@ -0,0 +1,87 @@ +package eu.europa.ec.smp.spi.handler; + +import eu.europa.ec.smp.spi.api.model.ResourceIdentifier; +import eu.europa.ec.smp.spi.exceptions.ResourceException; +import eu.europa.ec.smp.spi.validation.ServiceMetadata10Validator; +import eu.europa.ec.smp.spi.validation.ServiceMetadata20Validator; +import org.hamcrest.MatcherAssert; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; + +import static org.junit.Assert.assertThrows; + +class OasisSMPServiceMetadata20HandlerTest extends AbstractHandlerTest { + + + ResourceIdentifier resourceIdentifier = new ResourceIdentifier( "9915:123456789", "iso6523-actorid-upis"); + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0:extended:urn:www.difi.no:ehf:faktura:ver2.0::2.1", "bdx-docid-qns"); + + @Override + public AbstractOasisSMPHandler getTestInstance() { + return new OasisSMPServiceMetadata20Handler(mockSmpDataApi, mockSmpIdentifierServiceApi, mockSignatureApi, new ServiceMetadata20Validator(mockSmpIdentifierServiceApi) ); + } + + @Test + void testGenerateResource() throws ResourceException { + + generateResourceAction(resourceIdentifier, subResourceIdentifier); + } + + @Test + void validateResourceOK() throws ResourceException { + + // validate + validateResourceAction("/examples/oasis-smp-2.0/service_metadata_unsigned_valid_iso6523.xml", resourceIdentifier, subResourceIdentifier); + } + + @Test + void validateResourceDisallowedDocType() { + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523_DTD.xml", resourceIdentifier, subResourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("accessExternalDTD")); + } + + @Test + void validateResourceInvalidIdentifier() { + ResourceIdentifier resourceIdentifierInvalid = new ResourceIdentifier("urn:poland:ncpb:wrongIdentifier", "ehealth-actorid-qns"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-2.0/service_metadata_unsigned_valid_iso6523.xml", resourceIdentifierInvalid, subResourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("Participant identifiers don't match")); + } + + @Test + void validateResourceInvalidDocumentIdentifier() { + + ResourceIdentifier subResourceIdentifier = new ResourceIdentifier("urn::epsos##services:extended:epsos::101:invalidIdentifeir", "ehealth-resid-qns"); + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-2.0/service_metadata_unsigned_valid_iso6523.xml", resourceIdentifier, subResourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("Document identifiers don't match")); + } + + @Test + void validateResourceInvalidScheme() { + + // validate + ResourceException result = assertThrows(ResourceException.class, + () -> validateResourceAction("/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523.xml", resourceIdentifier, subResourceIdentifier)); + MatcherAssert.assertThat(result.getMessage(), org.hamcrest.Matchers.containsString("SAXParseException")); + } + + @Test + void readResourceOK() throws ResourceException { + String resourceName = "/examples/oasis-smp-2.0/service_metadata_unsigned_valid_iso6523.xml"; + + readResourceAction(resourceName, resourceIdentifier, subResourceIdentifier); + } + + @Test + void storeResourceOK() throws ResourceException { + String resourceName = "/examples/oasis-smp-2.0/service_metadata_unsigned_valid_iso6523.xml"; + storeResourceAction(resourceName, resourceIdentifier, subResourceIdentifier); + } + + +} diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceGroupOK.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceGroupOK.xml deleted file mode 100644 index 397a71f79b77538edcbaf215cc5906d7f873ff93..0000000000000000000000000000000000000000 --- a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceGroupOK.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<ServiceGroup xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"> - <ParticipantIdentifier/> - <ServiceMetadataReferenceCollection> - <ServiceMetadataReference href="http://poland.pl"/> - </ServiceMetadataReferenceCollection> -</ServiceGroup> \ No newline at end of file diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupInvalidScheme.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupInvalidScheme.xml new file mode 100644 index 0000000000000000000000000000000000000000..351b8375d3a8899d09b8644c3369e774022a279b --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupInvalidScheme.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<ServiceGroup xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"> + <ParticipantIdentifier scheme="ehealth-actorid-qns">urn:eu:ncpb:utest</ParticipantIdentifier> + <ServiceMetadataReferenceCollectionNotValid/> + This is not valid ServiceGroup XML +</ServiceGroup> diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupOK.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupOK.xml new file mode 100644 index 0000000000000000000000000000000000000000..38420ca0c19b4f623fea7215ae22d151a6afeab3 --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupOK.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<ServiceGroup xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"> + <ParticipantIdentifier scheme="ehealth-actorid-qns">urn:eu:ncpb:utest</ParticipantIdentifier> + <ServiceMetadataReferenceCollection /> +</ServiceGroup> diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceGroupWithDOCTYPE.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupWithDOCTYPE.xml similarity index 100% rename from smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceGroupWithDOCTYPE.xml rename to smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupWithDOCTYPE.xml diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceGroupWithExtension.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupWithExtension.xml similarity index 100% rename from smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceGroupWithExtension.xml rename to smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupWithExtension.xml diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataMissingMandatoryFields.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataMissingMandatoryFields.xml similarity index 100% rename from smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataMissingMandatoryFields.xml rename to smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataMissingMandatoryFields.xml diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataWithDOCTYPE.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataWithDOCTYPE.xml similarity index 100% rename from smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataWithDOCTYPE.xml rename to smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataWithDOCTYPE.xml diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataWithRedirect.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataWithRedirect.xml similarity index 100% rename from smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataWithRedirect.xml rename to smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataWithRedirect.xml diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataWithServiceInformationUtf8.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataWithServiceInformationUtf8.xml similarity index 100% rename from smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataWithServiceInformationUtf8.xml rename to smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataWithServiceInformationUtf8.xml diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataWithServiceInformation.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataWithServiceOk.xml similarity index 99% rename from smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataWithServiceInformation.xml rename to smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataWithServiceOk.xml index dc8146280a7e650d62dbf0df26ddf4f15d1232be..5f49eacd74712dbc66410dd1cc2402530679a5ac 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceMetadataWithServiceInformation.xml +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceMetadataWithServiceOk.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?><ServiceMetadata xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"> <ServiceInformation> - <ParticipantIdentifier scheme="ehealth-actorid-qns">urn:poland:ncpb</ParticipantIdentifier> + <ParticipantIdentifier scheme="ehealth-actorid-qns">urn:eu:ncpb:utest</ParticipantIdentifier> <DocumentIdentifier scheme="ehealth-resid-qns">urn::epsos##services:extended:epsos::107</DocumentIdentifier> <ProcessList> <Process> @@ -17,7 +17,7 @@ <TechnicalContactUrl>http://poland.pl/contact</TechnicalContactUrl> <TechnicalInformationUrl>http://poland.pl/contact</TechnicalInformationUrl> </Endpoint> - <Endpoint transportProfile="urn:ihe:iti:2013:xcpd"> + <Endpoint transportProfile="urn:ihe:iti:2013:xcpd2"> <EndpointURI>http://poland.pl/ncp/patient/list</EndpointURI> <RequireBusinessLevelSignature>false</RequireBusinessLevelSignature> <MinimumAuthenticationLevel>urn:epSOS:loa:1</MinimumAuthenticationLevel> @@ -44,4 +44,4 @@ L4XH1GcdCg6oPKPUc+ovbgN7/iR265Elp4qHfpVteBijBTyZReH4oAK9hRhK1gLwtjI7vpjVaPXv vkV1fbrz</X509Certificate></X509Data></KeyInfo></Signature></Extension> </ServiceInformation> -</ServiceMetadata> \ No newline at end of file +</ServiceMetadata> diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523.xml new file mode 100644 index 0000000000000000000000000000000000000000..9243e098a9735da5d7246a6592d759104966a649 --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ServiceGroup xmlns:smb="http://docs.oasis-open.org/bdxr/ns/SMP/2/BasicComponents" + xmlns:sma="http://docs.oasis-open.org/bdxr/ns/SMP/2/AggregateComponents" + xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2/ServiceGroup"> + <smb:SMPVersionID>2.0</smb:SMPVersionID> + <sma:ServiceReference> + <smb:ID schemeID="bdx-docid-qns">urn::epsos:services##epsos-21</smb:ID> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + </sma:ServiceReference> + <sma:ServiceReference> + <smb:ID schemeID="bdx-docid-qns">urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote##urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0::2.1</smb:ID> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + </sma:ServiceReference> +</ServiceGroup> diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523_DTD.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523_DTD.xml new file mode 100644 index 0000000000000000000000000000000000000000..dc586b5feca8ef8136fb70dc27770a30bb872c28 --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523_DTD.xml @@ -0,0 +1,20 @@ +<!DOCTYPE externaladdress SYSTEM "any_external_file_address.dtd"> +<?xml version="1.0" encoding="UTF-8"?> +<ServiceGroup xmlns:smb="http://docs.oasis-open.org/bdxr/ns/SMP/2/BasicComponents" + xmlns:sma="http://docs.oasis-open.org/bdxr/ns/SMP/2/AggregateComponents" + xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2/ServiceGroup"> + <smb:SMPVersionID>2.0</smb:SMPVersionID> + <smb:ParticipantID schemeID="iso6523-actorid-upis">9925:0367302178</smb:ParticipantID> + <sma:ServiceReference> + <smb:ID schemeID="bdx-docid-qns">urn::epsos:services##epsos-21</smb:ID> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + </sma:ServiceReference> + <sma:ServiceReference> + <smb:ID schemeID="bdx-docid-qns">urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote##urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0::2.1</smb:ID> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + </sma:ServiceReference> +</ServiceGroup> diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523-no-references.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523-no-references.xml new file mode 100644 index 0000000000000000000000000000000000000000..c45f1c77df646465a7b9e68e1791851904c2ba54 --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523-no-references.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ServiceGroup xmlns:smb="http://docs.oasis-open.org/bdxr/ns/SMP/2/BasicComponents" + xmlns:sma="http://docs.oasis-open.org/bdxr/ns/SMP/2/AggregateComponents" + xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2/ServiceGroup"> + <smb:SMPVersionID>2.0</smb:SMPVersionID> + <smb:ParticipantID schemeID="iso6523-actorid-upis">9925:0367302178</smb:ParticipantID> + +</ServiceGroup> + diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523.xml new file mode 100644 index 0000000000000000000000000000000000000000..4acd68f8b4f6c70c28573fc1dd020bf14f845c3f --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ServiceGroup xmlns:smb="http://docs.oasis-open.org/bdxr/ns/SMP/2/BasicComponents" + xmlns:sma="http://docs.oasis-open.org/bdxr/ns/SMP/2/AggregateComponents" + xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2/ServiceGroup"> + <smb:SMPVersionID>2.0</smb:SMPVersionID> + <smb:ParticipantID schemeID="iso6523-actorid-upis">9925:0367302178</smb:ParticipantID> + <sma:ServiceReference> + <smb:ID schemeID="bdx-docid-qns">urn::epsos:services##epsos-21</smb:ID> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + </sma:ServiceReference> + <sma:ServiceReference> + <smb:ID schemeID="bdx-docid-qns">urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2::CreditNote##urn:www.cenbii.eu:transaction:biitrns014:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0::2.1</smb:ID> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + </sma:ServiceReference> +</ServiceGroup> + diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523.xml new file mode 100644 index 0000000000000000000000000000000000000000..4be56bda8f61b438bdc79b3bf11ce74028bc111d --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<ServiceMetadata xmlns:smb="http://docs.oasis-open.org/bdxr/ns/SMP/2/BasicComponents" xmlns:sma="http://docs.oasis-open.org/bdxr/ns/SMP/2/AggregateComponents" xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2/ServiceMetadata"> + <smb:SMPVersionID>2.0</smb:SMPVersionID> + <smb:ParticipantID schemeID="iso6523-actorid-upis">9915:123456789</smb:ParticipantID> + <smb:ServiceID schemeID="bdx-docid-qns">urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0:extended:urn:www.difi.no:ehf:faktura:ver2.0::2.1</smb:ServiceID> + <sma:ProcessMetadata> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + <sma:Endpoint> + <smb:TransportProfileID>bdxr-transport-ebms3-as4-v1p0</smb:TransportProfileID> + <smb:Description>contact@example.com</smb:Description> + <smb:Contact>Access point for testing</smb:Contact> + <smb:AddressURI>https://ap.example.com/as4</smb:AddressURI> + <smb:ActivationDate>2018-04-12</smb:ActivationDate> + <smb:ExpirationDate>2020-04-12</smb:ExpirationDate> + <sma:Certificate> + <smb:Description>contact@example.com</smb:Description> + <smb:Subject>CN=EXAMPLE AP,C=NO</smb:Subject> + <smb:Issuer>CN=EXAMPLE AP,C=NO</smb:Issuer> + <smb:ActivationDate>2018-04-12</smb:ActivationDate> + <smb:ExpirationDate>2020-04-12</smb:ExpirationDate> + <smb:ContentBinaryObject mimeCode="application/base64"> +MIICwDCCAaigAwIBAgIEWs7kiDANBgkqhkiG9w0BAQsFADAiMQswCQYDVQQGEwJO +TzETMBEGA1UEAwwKRVhBTVBMRSBBUDAeFw0xODA0MTIwNDQ2MDBaFw0yMDA0MTIw +NDQ2MDBaMCIxCzAJBgNVBAYTAk5PMRMwEQYDVQQDDApFWEFNUExFIEFQMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuG5qwA2sNvC9dj4purG8hkSVB9p +CWVHyO9buRrSCC+r2UxSF7Lnmr8Hjii0uIdJeFyYv0Vj9d4CjpYyEeYU2QG96wi+ +w2KdE28HMZFNMwy0iV9vIkbq0esJCcAXQ4C3rPQ4e9F1Tw4oKnS6rEWCw8i8lsKE +iS/dzIFUa/BVtgjqHvs3siON4k1Y7BU93rZViz8ZM6LB4eA7rYU4le6a8rGKbHa6 +BMSIoKgBuKr8XY9lKb2OVg65+LWTESpPkKiKRikzZhAw+mEVYmljvFwBLSp0IEKW +3qogVYGA0jz+kWWGOChk58SKsnqhbANoIucz+axxoJOLl0A5328qM7aRTwIDAQAB +MA0GCSqGSIb3DQEBCwUAA4IBAQBW7VCYhUmRR7xW+QOhUxI//ISjupDdcQ/Jl7hH +CrUghjL7FmNnJKNqBAwrxcAfdwXwRltWzNT9E1btekfyw4+QL34w20kZ7SNLioZU +lxVviaoLsf0f70TMPOBGGv/uyV26l5VMBK40FXvcFwDQ5VNiJOYrsxpF//Hh/t76 +QMij6glyLUmYA1aS9Am0zAB5ld+U7HtJAEL6SXinPrPDR1ofcRgx3FzY5pq0PCn9 +EA005L6X4eGkI3HqwpcDzYwDC29pPSfnNP50khfFJMCnT6kKhCkPJYQhcZexGJ2U +Ad5OU7Gui/WnmjM80x9qHBv2RIIQggpMy838WjPbw11gMOo+ + </smb:ContentBinaryObject> + </sma:Certificate> + </sma:Endpoint> + </sma:ProcessMetadata> +</ServiceMetadata> diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523_DTD.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523_DTD.xml new file mode 100644 index 0000000000000000000000000000000000000000..2b2786bdc8cbcf4bd5ef8efe3414b73c698b7f8c --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523_DTD.xml @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<!DOCTYPE externaladdress SYSTEM "any_external_file_address.dtd"> +<ServiceMetadata xmlns:smb="http://docs.oasis-open.org/bdxr/ns/SMP/2/BasicComponents" xmlns:sma="http://docs.oasis-open.org/bdxr/ns/SMP/2/AggregateComponents" xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2/ServiceMetadata"> + <smb:SMPVersionID>2.0</smb:SMPVersionID> + <smb:ParticipantID schemeID="iso6523-actorid-upis">9915:123456789</smb:ParticipantID> + <smb:ServiceID schemeID="bdx-docid-qns">urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0:extended:urn:www.difi.no:ehf:faktura:ver2.0::2.1</smb:ServiceID> + <sma:ProcessMetadata> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + <sma:Endpoint> + <smb:TransportProfileID>bdxr-transport-ebms3-as4-v1p0</smb:TransportProfileID> + <smb:Description>contact@example.com</smb:Description> + <smb:Contact>Access point for testing</smb:Contact> + <smb:AddressURI>https://ap.example.com/as4</smb:AddressURI> + <smb:ActivationDate>2018-04-12</smb:ActivationDate> + <smb:ExpirationDate>2020-04-12</smb:ExpirationDate> + <sma:Certificate> + <smb:Subject>CN=EXAMPLE AP,C=NO</smb:Subject> + <smb:Issuer>CN=EXAMPLE AP,C=NO</smb:Issuer> + <smb:ActivationDate>2018-04-12</smb:ActivationDate> + <smb:ExpirationDate>2020-04-12</smb:ExpirationDate> + <smb:ContentBinaryObject mimeCode="application/base64"> +MIICwDCCAaigAwIBAgIEWs7kiDANBgkqhkiG9w0BAQsFADAiMQswCQYDVQQGEwJO +TzETMBEGA1UEAwwKRVhBTVBMRSBBUDAeFw0xODA0MTIwNDQ2MDBaFw0yMDA0MTIw +NDQ2MDBaMCIxCzAJBgNVBAYTAk5PMRMwEQYDVQQDDApFWEFNUExFIEFQMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuG5qwA2sNvC9dj4purG8hkSVB9p +CWVHyO9buRrSCC+r2UxSF7Lnmr8Hjii0uIdJeFyYv0Vj9d4CjpYyEeYU2QG96wi+ +w2KdE28HMZFNMwy0iV9vIkbq0esJCcAXQ4C3rPQ4e9F1Tw4oKnS6rEWCw8i8lsKE +iS/dzIFUa/BVtgjqHvs3siON4k1Y7BU93rZViz8ZM6LB4eA7rYU4le6a8rGKbHa6 +BMSIoKgBuKr8XY9lKb2OVg65+LWTESpPkKiKRikzZhAw+mEVYmljvFwBLSp0IEKW +3qogVYGA0jz+kWWGOChk58SKsnqhbANoIucz+axxoJOLl0A5328qM7aRTwIDAQAB +MA0GCSqGSIb3DQEBCwUAA4IBAQBW7VCYhUmRR7xW+QOhUxI//ISjupDdcQ/Jl7hH +CrUghjL7FmNnJKNqBAwrxcAfdwXwRltWzNT9E1btekfyw4+QL34w20kZ7SNLioZU +lxVviaoLsf0f70TMPOBGGv/uyV26l5VMBK40FXvcFwDQ5VNiJOYrsxpF//Hh/t76 +QMij6glyLUmYA1aS9Am0zAB5ld+U7HtJAEL6SXinPrPDR1ofcRgx3FzY5pq0PCn9 +EA005L6X4eGkI3HqwpcDzYwDC29pPSfnNP50khfFJMCnT6kKhCkPJYQhcZexGJ2U +Ad5OU7Gui/WnmjM80x9qHBv2RIIQggpMy838WjPbw11gMOo+ + </smb:ContentBinaryObject> + </sma:Certificate> + </sma:Endpoint> + </sma:ProcessMetadata> +</ServiceMetadata> diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_redirection_iso6523.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_redirection_iso6523.xml new file mode 100644 index 0000000000000000000000000000000000000000..c7a51c6d0c393b7478a9eff2dba3d7a1856a3543 --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_redirection_iso6523.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<ServiceMetadata xmlns:smb="http://docs.oasis-open.org/bdxr/ns/SMP/2/BasicComponents" + xmlns:sma="http://docs.oasis-open.org/bdxr/ns/SMP/2/AggregateComponents" + xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2/ServiceMetadata"> + <smb:SMPVersionID>2.0</smb:SMPVersionID> + <smb:ParticipantID schemeID="iso6523-actorid-upis">9915:123456789</smb:ParticipantID> + <smb:ServiceID schemeID="bdx-docid-qns">Invoice:ver2.0</smb:ServiceID> + <sma:ProcessMetadata> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + <sma:Redirect> + <smb:PublisherURI>https://ap.example.com/iso6523-actorid-upis::9915:123456789/services/bdx-docid-qns::Invoice:ver2.0</smb:PublisherURI> + </sma:Redirect> + </sma:ProcessMetadata> +</ServiceMetadata> diff --git a/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_valid_iso6523.xml b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_valid_iso6523.xml new file mode 100644 index 0000000000000000000000000000000000000000..189f39d8853915b61c2229ca7be7fadb281239de --- /dev/null +++ b/smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_valid_iso6523.xml @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<ServiceMetadata xmlns:smb="http://docs.oasis-open.org/bdxr/ns/SMP/2/BasicComponents" xmlns:sma="http://docs.oasis-open.org/bdxr/ns/SMP/2/AggregateComponents" xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2/ServiceMetadata"> + <smb:SMPVersionID>2.0</smb:SMPVersionID> + <smb:ParticipantID schemeID="iso6523-actorid-upis">9915:123456789</smb:ParticipantID> + <smb:ServiceID schemeID="bdx-docid-qns">urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0:extended:urn:www.difi.no:ehf:faktura:ver2.0::2.1</smb:ServiceID> + <sma:ProcessMetadata> + <sma:Process> + <smb:ID schemeID="cenbii-procid-ubl">urn:www.cenbii.eu:profile:bii05:ver2.0</smb:ID> + </sma:Process> + <sma:Endpoint> + <smb:TransportProfileID>bdxr-transport-ebms3-as4-v1p0</smb:TransportProfileID> + <smb:Description>contact@example.com</smb:Description> + <smb:Contact>Access point for testing</smb:Contact> + <smb:AddressURI>https://ap.example.com/as4</smb:AddressURI> + <smb:ActivationDate>2018-04-12</smb:ActivationDate> + <smb:ExpirationDate>2099-04-12</smb:ExpirationDate> + <sma:Certificate> + <smb:Subject>CN=EXAMPLE AP,C=NO</smb:Subject> + <smb:Issuer>CN=EXAMPLE AP,C=NO</smb:Issuer> + <smb:ActivationDate>2018-04-12</smb:ActivationDate> + <smb:ExpirationDate>2020-04-12</smb:ExpirationDate> + <smb:ContentBinaryObject mimeCode="application/base64"> +MIICwDCCAaigAwIBAgIEWs7kiDANBgkqhkiG9w0BAQsFADAiMQswCQYDVQQGEwJO +TzETMBEGA1UEAwwKRVhBTVBMRSBBUDAeFw0xODA0MTIwNDQ2MDBaFw0yMDA0MTIw +NDQ2MDBaMCIxCzAJBgNVBAYTAk5PMRMwEQYDVQQDDApFWEFNUExFIEFQMIIBIjAN +BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuG5qwA2sNvC9dj4purG8hkSVB9p +CWVHyO9buRrSCC+r2UxSF7Lnmr8Hjii0uIdJeFyYv0Vj9d4CjpYyEeYU2QG96wi+ +w2KdE28HMZFNMwy0iV9vIkbq0esJCcAXQ4C3rPQ4e9F1Tw4oKnS6rEWCw8i8lsKE +iS/dzIFUa/BVtgjqHvs3siON4k1Y7BU93rZViz8ZM6LB4eA7rYU4le6a8rGKbHa6 +BMSIoKgBuKr8XY9lKb2OVg65+LWTESpPkKiKRikzZhAw+mEVYmljvFwBLSp0IEKW +3qogVYGA0jz+kWWGOChk58SKsnqhbANoIucz+axxoJOLl0A5328qM7aRTwIDAQAB +MA0GCSqGSIb3DQEBCwUAA4IBAQBW7VCYhUmRR7xW+QOhUxI//ISjupDdcQ/Jl7hH +CrUghjL7FmNnJKNqBAwrxcAfdwXwRltWzNT9E1btekfyw4+QL34w20kZ7SNLioZU +lxVviaoLsf0f70TMPOBGGv/uyV26l5VMBK40FXvcFwDQ5VNiJOYrsxpF//Hh/t76 +QMij6glyLUmYA1aS9Am0zAB5ld+U7HtJAEL6SXinPrPDR1ofcRgx3FzY5pq0PCn9 +EA005L6X4eGkI3HqwpcDzYwDC29pPSfnNP50khfFJMCnT6kKhCkPJYQhcZexGJ2U +Ad5OU7Gui/WnmjM80x9qHBv2RIIQggpMy838WjPbw11gMOo+ + </smb:ContentBinaryObject> + </sma:Certificate> + </sma:Endpoint> + </sma:ProcessMetadata> +</ServiceMetadata>