From 18ebc0087ec7872702f16b737c4039a78751f3e4 Mon Sep 17 00:00:00 2001 From: RIHTARSIC Joze <joze.rihtarsic@ext.ec.europa.eu> Date: Sat, 15 Jul 2023 16:05:56 +0200 Subject: [PATCH] Add new Unit tests --- .../spi/handler/OasisCppa3CppHandlerTest.java | 2 +- .../europa/ec/smp/spi/OasisSMPExtension.java | 2 +- .../OasisSMPServiceGroup10Handler.java | 2 +- .../ServiceMetadata10Validator.java | 6 +- .../ec/smp/spi/OasisSMPExtensionTest.java | 40 +++++-- .../ServiceMetadataConverterTest.java | 11 +- .../smp/spi/handler/AbstractHandlerTest.java | 113 ++++++++++++++++++ .../OasisSMPServiceGroup10HandlerTest.java | 76 ++++++++++++ .../OasisSMPServiceGroup20HandlerTest.java | 75 ++++++++++++ .../OasisSMPServiceMetadata10HandlerTest.java | 96 +++++++++++++++ .../OasisSMPServiceMetadata20HandlerTest.java | 87 ++++++++++++++ .../examples/conversion/ServiceGroupOK.xml | 7 -- .../ServiceGroupInvalidScheme.xml | 6 + .../examples/oasis-smp-1.0/ServiceGroupOK.xml | 5 + .../ServiceGroupWithDOCTYPE.xml | 0 .../ServiceGroupWithExtension.xml | 0 .../ServiceMetadataMissingMandatoryFields.xml | 0 .../ServiceMetadataWithDOCTYPE.xml | 0 .../ServiceMetadataWithRedirect.xml | 0 ...viceMetadataWithServiceInformationUtf8.xml | 0 .../ServiceMetadataWithServiceOk.xml} | 6 +- ...service_group_unsigned_invalid_iso6523.xml | 18 +++ ...ice_group_unsigned_invalid_iso6523_DTD.xml | 20 ++++ ...p_unsigned_valid_iso6523-no-references.xml | 9 ++ .../service_group_unsigned_valid_iso6523.xml | 20 ++++ ...vice_metadata_unsigned_invalid_iso6523.xml | 43 +++++++ ..._metadata_unsigned_invalid_iso6523_DTD.xml | 43 +++++++ ..._metadata_unsigned_redirection_iso6523.xml | 16 +++ ...ervice_metadata_unsigned_valid_iso6523.xml | 42 +++++++ 29 files changed, 717 insertions(+), 28 deletions(-) create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/AbstractHandlerTest.java create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10HandlerTest.java create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20HandlerTest.java create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata10HandlerTest.java create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20HandlerTest.java delete mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/conversion/ServiceGroupOK.xml create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupInvalidScheme.xml create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-1.0/ServiceGroupOK.xml rename smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/{conversion => oasis-smp-1.0}/ServiceGroupWithDOCTYPE.xml (100%) rename smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/{conversion => oasis-smp-1.0}/ServiceGroupWithExtension.xml (100%) rename smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/{conversion => oasis-smp-1.0}/ServiceMetadataMissingMandatoryFields.xml (100%) rename smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/{conversion => oasis-smp-1.0}/ServiceMetadataWithDOCTYPE.xml (100%) rename smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/{conversion => oasis-smp-1.0}/ServiceMetadataWithRedirect.xml (100%) rename smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/{conversion => oasis-smp-1.0}/ServiceMetadataWithServiceInformationUtf8.xml (100%) rename smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/{conversion/ServiceMetadataWithServiceInformation.xml => oasis-smp-1.0/ServiceMetadataWithServiceOk.xml} (99%) create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523.xml create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_invalid_iso6523_DTD.xml create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523-no-references.xml create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_group_unsigned_valid_iso6523.xml create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523.xml create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_invalid_iso6523_DTD.xml create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_redirection_iso6523.xml create mode 100644 smp-resource-extensions/oasis-smp-spi/src/test/resources/examples/oasis-smp-2.0/service_metadata_unsigned_valid_iso6523.xml 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 32fd0ead7..7c07518fc 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 3b96a7442..7213ce11a 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 08a37ae8c..cf45c332c 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 6f8304491..b18d58039 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 7814787da..5cef9ff84 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 c00c643f4..68812bd90 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 000000000..5f0d28e8f --- /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 000000000..9df2cbb5c --- /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 000000000..288b5cb3d --- /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 000000000..c242f616e --- /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 000000000..ed7db215f --- /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 397a71f79..000000000 --- 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 000000000..351b8375d --- /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 000000000..38420ca0c --- /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 dc8146280..5f49eacd7 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 000000000..9243e098a --- /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 000000000..dc586b5fe --- /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 000000000..c45f1c77d --- /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 000000000..4acd68f8b --- /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 000000000..4be56bda8 --- /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 000000000..2b2786bdc --- /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 000000000..c7a51c6d0 --- /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 000000000..189f39d88 --- /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> -- GitLab