4040import static org .mockito .ArgumentMatchers .any ;
4141import static org .mockito .Mockito .lenient ;
4242import static org .mockito .Mockito .when ;
43+ import static org .mockito .Mockito .spy ;
4344import static uk .nhs .adaptors .gp2gp .utils .ConfidentialityCodeUtility .NOPAT ;
4445import static uk .nhs .adaptors .gp2gp .utils .ConfidentialityCodeUtility .NOPAT_HL7_CONFIDENTIALITY_CODE ;
4546import static uk .nhs .adaptors .gp2gp .utils .ConfidentialityCodeUtility .NOSCRUB ;
@@ -126,6 +127,8 @@ class ConditionLinkSetMapperTest {
126127 private ArgumentCaptor <Condition > conditionArgumentCaptor ;
127128
128129 private InputBundle inputBundle ;
130+
131+ private ConditionLinkSetMapper conditionLinkSetMapperSpy ;
129132 private ConditionLinkSetMapper conditionLinkSetMapper ;
130133
131134 @ BeforeEach
@@ -155,6 +158,10 @@ void setUp() {
155158
156159 conditionLinkSetMapper = new ConditionLinkSetMapper (messageContext , randomIdGeneratorService , codeableConceptCdMapper ,
157160 new ParticipantMapper (), confidentialityService );
161+
162+ conditionLinkSetMapperSpy = spy (conditionLinkSetMapper );
163+
164+ lenient ().doNothing ().when (conditionLinkSetMapperSpy ).testForValidReferences (any ());
158165 }
159166
160167 @ AfterEach
@@ -170,15 +177,15 @@ void When_MappingParsedConditionWithoutMappedAgent_Expect_EhrMapperException() {
170177 when (agentDirectory .getAgentId (any (Reference .class )))
171178 .thenThrow (propagatedException );
172179
173- assertThatThrownBy (() -> conditionLinkSetMapper .mapConditionToLinkSet (condition , false ))
180+ assertThatThrownBy (() -> conditionLinkSetMapperSpy .mapConditionToLinkSet (condition , false ))
174181 .isSameAs (propagatedException );
175182 }
176183
177184 @ Test
178185 void When_MappingParsedConditionWithAsserterNotPractitioner_Expect_EhrMapperException () {
179186 final Condition condition = getConditionResourceFromJson (INPUT_JSON_ASSERTER_NOT_PRACTITIONER );
180187
181- assertThatThrownBy (() -> conditionLinkSetMapper .mapConditionToLinkSet (condition , false ))
188+ assertThatThrownBy (() -> conditionLinkSetMapperSpy .mapConditionToLinkSet (condition , false ))
182189 .isExactlyInstanceOf (EhrMapperException .class )
183190 .hasMessage ("Condition.asserter must be a Practitioner" );
184191 }
@@ -189,7 +196,7 @@ void When_MappingParsedCondition_With_RealProblem_Expect_LinkSetXml(String condi
189196 final Condition condition = getConditionResourceFromJson (conditionJson );
190197 final String expectedXml = getXmlStringFromFile (outputXml );
191198
192- final String actualXml = conditionLinkSetMapper .mapConditionToLinkSet (condition , isNested );
199+ final String actualXml = conditionLinkSetMapperSpy .mapConditionToLinkSet (condition , isNested );
193200
194201 assertThat (actualXml ).isEqualTo (expectedXml );
195202 }
@@ -201,7 +208,7 @@ void When_MappingParsedCondition_With_ActualProblemContentAndIsObservation_Expec
201208 final Condition condition = getConditionResourceFromJson (conditionJson );
202209 final String expectedXml = getXmlStringFromFile (outputXml );
203210
204- final String actualXml = conditionLinkSetMapper .mapConditionToLinkSet (condition , isNested );
211+ final String actualXml = conditionLinkSetMapperSpy .mapConditionToLinkSet (condition , isNested );
205212
206213 assertThat (actualXml ).isEqualTo (expectedXml );
207214 }
@@ -211,7 +218,7 @@ void When_MappingParsedCondition_With_NoRelatedClinicalContent_Expect_LinkSetXml
211218 final Condition condition = getConditionResourceFromJson (INPUT_JSON_NO_RELATED_CLINICAL_CONTENT );
212219 final String expectedXml = getXmlStringFromFile (OUTPUT_XML_WITH_NO_RELATED_CLINICAL_CONTENT );
213220
214- final String actualXml = conditionLinkSetMapper .mapConditionToLinkSet (condition , false );
221+ final String actualXml = conditionLinkSetMapperSpy .mapConditionToLinkSet (condition , false );
215222
216223 assertThat (actualXml ).isEqualTo (expectedXml );
217224 }
@@ -223,7 +230,7 @@ void When_MappingParsedCondition_With_NonExistentReferenceInRelatedClinicalConte
223230 when (messageContext .getInputBundleHolder ()).thenReturn (inputBundle );
224231
225232 // TODO: workaround for NIAD-1409 should throw an exception but demonstrator include invalid references
226- assumeThatThrownBy (() -> conditionLinkSetMapper .mapConditionToLinkSet (parsedObservation , false ))
233+ assumeThatThrownBy (() -> conditionLinkSetMapperSpy .mapConditionToLinkSet (parsedObservation , false ))
227234 .isExactlyInstanceOf (EhrMapperException .class )
228235 .hasMessage ("Could not resolve Condition Related Medical Content reference" );
229236 }
@@ -232,7 +239,7 @@ void When_MappingParsedCondition_With_NonExistentReferenceInRelatedClinicalConte
232239 void When_MappingParsedConditionCodeIsMissing_Expect_MapperException () {
233240 final Condition condition = getConditionResourceFromJson (INPUT_JSON_MISSING_CONDITION_CODE );
234241
235- assertThatThrownBy (() -> conditionLinkSetMapper .mapConditionToLinkSet (condition , false ))
242+ assertThatThrownBy (() -> conditionLinkSetMapperSpy .mapConditionToLinkSet (condition , false ))
236243 .isExactlyInstanceOf (EhrMapperException .class )
237244 .hasMessage ("Condition code not present" );
238245 }
@@ -242,7 +249,7 @@ void When_MappingCondition_With_SuppressedMedReqAsRelatedClinicalContent_Expect_
242249 final Condition condition = getConditionResourceFromJson (INPUT_JSON_SUPPRESSED_RELATED_MEDICATION_REQUEST );
243250 final String expectedXml = getXmlStringFromFile (OUTPUT_XML_SUPPRESSED_RELATED_MEDICATION_REQUEST );
244251
245- final String actualXml = conditionLinkSetMapper .mapConditionToLinkSet (condition , false );
252+ final String actualXml = conditionLinkSetMapperSpy .mapConditionToLinkSet (condition , false );
246253
247254 XMLAssert .assertXMLEqual (expectedXml , actualXml );
248255 }
@@ -258,7 +265,7 @@ void When_MappingCondition_With_NopatMetaSecurity_Expect_ConfidentialityCodeInBo
258265 when (confidentialityService .generateConfidentialityCode (conditionArgumentCaptor .capture ()))
259266 .thenReturn (Optional .of (NOPAT_HL7_CONFIDENTIALITY_CODE ));
260267
261- final String actualXml = wrapXmlInRootElement (conditionLinkSetMapper
268+ final String actualXml = wrapXmlInRootElement (conditionLinkSetMapperSpy
262269 .mapConditionToLinkSet (condition , false ));
263270 final String conditionSecurityCode = ConfidentialityCodeUtility
264271 .getSecurityCodeFromResource (conditionArgumentCaptor .getValue ());
@@ -278,7 +285,7 @@ void When_MappingCondition_With_NoscrubMetaSecurity_Expect_ConfidentialityCodeNo
278285 when (confidentialityService .generateConfidentialityCode (conditionArgumentCaptor .capture ()))
279286 .thenReturn (Optional .empty ());
280287
281- final String actualXml = conditionLinkSetMapper .mapConditionToLinkSet (condition , false );
288+ final String actualXml = conditionLinkSetMapperSpy .mapConditionToLinkSet (condition , false );
282289 final String conditionSecurityCode = ConfidentialityCodeUtility
283290 .getSecurityCodeFromResource (conditionArgumentCaptor .getValue ());
284291
0 commit comments