|
37 | 37 | import uk.nhs.adaptors.gp2gp.ehr.mapper.SupportedContentTypes; |
38 | 38 | import uk.nhs.adaptors.gp2gp.ehr.mapper.parameters.EhrExtractTemplateParameters; |
39 | 39 | import uk.nhs.adaptors.gp2gp.mhs.model.OutboundMessage; |
| 40 | +import uk.nhs.adaptors.gp2gp.transformjsontoxmltool.XmlSchemaValidator; |
40 | 41 | import wiremock.org.custommonkey.xmlunit.DetailedDiff; |
41 | 42 | import wiremock.org.custommonkey.xmlunit.XMLUnit; |
42 | 43 |
|
@@ -68,6 +69,8 @@ class StructuredRecordMappingServiceTest { |
68 | 69 | private SupportedContentTypes supportedContentTypes; |
69 | 70 | @Mock |
70 | 71 | private EhrExtractStatusService ehrExtractStatusService; |
| 72 | + @Mock |
| 73 | + private XmlSchemaValidator xmlSchemaValidator; |
71 | 74 |
|
72 | 75 | @InjectMocks |
73 | 76 | private StructuredRecordMappingService structuredRecordMappingService; |
@@ -280,6 +283,31 @@ void When_BuildingSkeletonForEhrExtractWithoutChildComponentNodesToReplace_Expec |
280 | 283 | assertXMLEquals(skeletonEhrExtract, expectedSkeletonEhrExtract); |
281 | 284 | } |
282 | 285 |
|
| 286 | + @Test |
| 287 | + void When_MapStructuredRecordToEhrExtractXml_Expect_XmlValidatedAndReturned() { |
| 288 | + var structuredTaskDefinition = mock(GetGpcStructuredTaskDefinition.class); |
| 289 | + var bundle = mock(Bundle.class); |
| 290 | + var ehrExtractTemplateParameters = mock(EhrExtractTemplateParameters.class); |
| 291 | + var ehrExtractContent = "ehrExtractXmlContent"; |
| 292 | + var expectedOutput = "wrappedEhrExtractXml"; |
| 293 | + var conversationId = "conversationId123"; |
| 294 | + |
| 295 | + when(ehrExtractMapper.mapBundleToEhrFhirExtractParams(structuredTaskDefinition, bundle)) |
| 296 | + .thenReturn(ehrExtractTemplateParameters); |
| 297 | + when(ehrExtractMapper.mapEhrExtractToXml(ehrExtractTemplateParameters)) |
| 298 | + .thenReturn(ehrExtractContent); |
| 299 | + when(structuredTaskDefinition.getConversationId()) |
| 300 | + .thenReturn(conversationId); |
| 301 | + when(outputMessageWrapperMapper.map(structuredTaskDefinition, ehrExtractContent)) |
| 302 | + .thenReturn(expectedOutput); |
| 303 | + |
| 304 | + var actualOutput = structuredRecordMappingService.mapStructuredRecordToEhrExtractXml(structuredTaskDefinition, bundle); |
| 305 | + |
| 306 | + verify(xmlSchemaValidator).validateOutputToXmlSchema("conversationId123", ehrExtractContent); |
| 307 | + assertThat(actualOutput).isEqualTo(expectedOutput); |
| 308 | + } |
| 309 | + |
| 310 | + |
283 | 311 | public static void assertXMLEquals(String actualXML, String expectedXML) throws Exception { |
284 | 312 | XMLUnit.setIgnoreWhitespace(true); |
285 | 313 |
|
|
0 commit comments