3838import com .hubsante .model .edxl .EdxlMessage ;
3939import com .hubsante .model .exception .ValidationException ;
4040import io .micrometer .core .instrument .MeterRegistry ;
41- import io .micrometer .tracing .Tracer ;
4241import java .io .IOException ;
4342import java .nio .charset .StandardCharsets ;
4443import org .junit .jupiter .api .BeforeEach ;
@@ -59,6 +58,7 @@ class DispatcherConversionErrorHandlingTest {
5958 private MessagePersistenceService persistenceService ;
6059 private HubConfiguration hubConfig ;
6160 private ClientPropertiesRegistry clientPropertiesRegistry ;
61+ private Validator validator ;
6262 private EdxlHandler edxlHandler ;
6363 private XmlMapper xmlMapper ;
6464 private ObjectMapper jsonMapper ;
@@ -74,6 +74,7 @@ void setUp() {
7474 persistenceService = hub .persistenceService ();
7575 hubConfig = hub .hubConfig ();
7676 clientPropertiesRegistry = hub .clientPropertiesRegistry ();
77+ validator = hub .validator ();
7778 edxlHandler = hub .edxlHandler ();
7879 xmlMapper = hub .xmlMapper ();
7980 jsonMapper = hub .jsonMapper ();
@@ -87,19 +88,6 @@ public void shouldHandleConversionServiceError() throws IOException {
8788 // sdisC -> samuV3 on vhost 15-nexsis_v1.9 => transcoding triggered
8889 doReturn (NEXSIS_VHOST ).when (hubConfig ).getVhost ();
8990
90- MessageHandler messageHandlerSpy = spy (messageHandler );
91- Dispatcher testDispatcher =
92- new Dispatcher (
93- messageHandlerSpy ,
94- rabbitTemplate ,
95- edxlHandler ,
96- xmlMapper ,
97- jsonMapper ,
98- conversionHandler ,
99- hubConfig ,
100- persistenceService ,
101- Tracer .NOOP );
102-
10391 Message receivedMessage =
10492 createMessage ("EDXL-DE" , JSON , SDIS_C_ROUTING_KEY , SAMU_V3_ROUTING_KEY );
10593 EdxlMessage edxlMessage =
@@ -113,13 +101,13 @@ public void shouldHandleConversionServiceError() throws IOException {
113101
114102 assertThrows (
115103 AmqpRejectAndDontRequeueException .class ,
116- () -> testDispatcher .dispatch (receivedMessage ));
104+ () -> dispatcher .dispatch (receivedMessage ));
117105
118106 ArgumentCaptor <ConversionException > exceptionCaptor =
119107 ArgumentCaptor .forClass (ConversionException .class );
120108 ArgumentCaptor <Message > messageCaptor = ArgumentCaptor .forClass (Message .class );
121109
122- verify (messageHandlerSpy ).handleError (exceptionCaptor .capture (), messageCaptor .capture ());
110+ verify (messageHandler ).handleError (exceptionCaptor .capture (), messageCaptor .capture ());
123111
124112 ConversionException thrownException = exceptionCaptor .getValue ();
125113 assertEquals (
@@ -133,42 +121,16 @@ public void shouldHandleConversionServiceError() throws IOException {
133121 @ Test
134122 @ DisplayName ("should transfer to another vhost when an error is raised after message transfer" )
135123 public void transferErrorToOtherVhost () throws IOException , ValidationException {
136- ClientPropertiesRegistry clientPropertiesRegistrySpy =
137- Mockito .spy (clientPropertiesRegistry );
138- doReturn (clientPropertiesRegistrySpy ).when (hubConfig ).getClientPropertiesRegistry ();
139124 doReturn ("15-15_v2.0" ).when (hubConfig ).getVhost ();
140125 doReturn (new String [] {"1.5" })
141- .when (clientPropertiesRegistrySpy )
126+ .when (clientPropertiesRegistry )
142127 .getClientVersionsForPerimeter (SAMU_A_ROUTING_KEY , "15-15" );
143- Validator validatorMock = Mockito .mock (Validator .class );
144- Mockito .doThrow (
128+ doThrow (
145129 new SchemaValidationException (
146130 "Mock schema validation error" , "mock_distribution_id" ))
147- .when (validatorMock )
131+ .when (validator )
148132 .validateJSON (anyString (), any ());
149133
150- MessageHandler messageHandlerSpy =
151- new MessageHandler (
152- rabbitTemplate ,
153- edxlHandler ,
154- hubConfig ,
155- validatorMock ,
156- registry ,
157- xmlMapper ,
158- jsonMapper ,
159- conversionHandler );
160- Dispatcher dispatcherSpy =
161- new Dispatcher (
162- messageHandlerSpy ,
163- rabbitTemplate ,
164- edxlHandler ,
165- xmlMapper ,
166- jsonMapper ,
167- conversionHandler ,
168- hubConfig ,
169- persistenceService ,
170- Tracer .NOOP );
171-
172134 Message message = createMessage ("EDXL-DE" , JSON , SAMU_V1_ROUTING_KEY , SAMU_A_ROUTING_KEY );
173135
174136 String exchangeName = "transfer_15-15_v2.0_to_15-15_v1.5" ;
@@ -177,7 +139,7 @@ public void transferErrorToOtherVhost() throws IOException, ValidationException
177139 AmqpRejectAndDontRequeueException errorThrown =
178140 assertThrows (
179141 AmqpRejectAndDontRequeueException .class ,
180- () -> dispatcherSpy .dispatch (message ));
142+ () -> dispatcher .dispatch (message ));
181143
182144 assertEquals ("Mock schema validation error" , errorThrown .getCause ().getMessage ());
183145
@@ -197,50 +159,24 @@ public void sendErrorMessageToSameVhost() throws IOException {
197159 @ Test
198160 @ DisplayName ("should send error message to sender info queue when error is raised" )
199161 public void sendErrorMessageWhenErrorIsRaised () throws IOException , ValidationException {
200- ClientPropertiesRegistry clientPropertiesRegistrySpy =
201- Mockito .spy (clientPropertiesRegistry );
202- doReturn (clientPropertiesRegistrySpy ).when (hubConfig ).getClientPropertiesRegistry ();
203162 doReturn ("15-15_v1.5" ).when (hubConfig ).getVhost ();
204163 doReturn (new String [] {"1.5" })
205- .when (clientPropertiesRegistrySpy )
164+ .when (clientPropertiesRegistry )
206165 .getClientVersionsForPerimeter (SAMU_A_ROUTING_KEY , "15-15" );
207166 // Default hub vhost is v2.1 and samuA declares v2.1: validation error is forwarded directly
208167 // to samuA's info queue without any conversion.
209- Validator validatorMock = Mockito .mock (Validator .class );
210- Mockito .doThrow (
168+ doThrow (
211169 new SchemaValidationException (
212170 "Mock schema validation error" , "mock_distribution_id" ))
213- .when (validatorMock )
171+ .when (validator )
214172 .validateJSON (anyString (), any ());
215173
216- MessageHandler messageHandlerSpy =
217- new MessageHandler (
218- rabbitTemplate ,
219- edxlHandler ,
220- hubConfig ,
221- validatorMock ,
222- registry ,
223- xmlMapper ,
224- jsonMapper ,
225- conversionHandler );
226- Dispatcher dispatcherSpy =
227- new Dispatcher (
228- messageHandlerSpy ,
229- rabbitTemplate ,
230- edxlHandler ,
231- xmlMapper ,
232- jsonMapper ,
233- conversionHandler ,
234- hubConfig ,
235- persistenceService ,
236- Tracer .NOOP );
237-
238174 Message message = createMessage ("EDXL-DE" , JSON );
239175
240176 AmqpRejectAndDontRequeueException errorThrown =
241177 assertThrows (
242178 AmqpRejectAndDontRequeueException .class ,
243- () -> dispatcherSpy .dispatch (message ));
179+ () -> dispatcher .dispatch (message ));
244180
245181 assertEquals ("Mock schema validation error" , errorThrown .getCause ().getMessage ());
246182
0 commit comments