|
8 | 8 | import org.junit.jupiter.api.BeforeEach; |
9 | 9 | import org.junit.jupiter.api.Test; |
10 | 10 | import org.junit.jupiter.api.extension.ExtendWith; |
| 11 | +import org.mockito.ArgumentCaptor; |
11 | 12 | import org.mockito.Mock; |
12 | 13 | import org.mockito.junit.jupiter.MockitoExtension; |
13 | 14 | import org.reactivecommons.async.api.AsyncQuery; |
|
29 | 30 | import reactor.rabbitmq.AcknowledgableDelivery; |
30 | 31 | import reactor.rabbitmq.Receiver; |
31 | 32 | import reactor.test.StepVerifier; |
| 33 | +import reactor.test.publisher.PublisherProbe; |
32 | 34 |
|
33 | 35 | import java.time.Instant; |
34 | 36 | import java.util.Date; |
|
37 | 39 | import java.util.Optional; |
38 | 40 | import java.util.function.Function; |
39 | 41 |
|
| 42 | +import static org.assertj.core.api.Assertions.assertThat; |
40 | 43 | import static org.mockito.Mockito.when; |
41 | 44 | import static org.mockito.Mockito.*; |
42 | 45 | import static org.reactivecommons.async.commons.Headers.*; |
@@ -80,7 +83,7 @@ public void setUp() { |
80 | 83 | QueryHandler<String, SampleClass> handler = (message) -> just("OK"); |
81 | 84 | handlers.put("queryDirect", new RegisteredQueryHandler<>("queryDirect", |
82 | 85 | (from, message) -> handler.handle(message), SampleClass.class)); |
83 | | - HandlerResolver resolver = new HandlerResolver(handlers, null,null, null, null); |
| 86 | + HandlerResolver resolver = new HandlerResolver(handlers, null, null, null, null); |
84 | 87 | applicationQueryListener = new ApplicationQueryListener(reactiveMessageListener, "queue", resolver, sender, |
85 | 88 | "directExchange", messageConverter, "replyExchange", false, |
86 | 89 | 1, 100, maxLengthBytes, true, discardNotifier, errorReporter); |
@@ -118,15 +121,26 @@ void shouldHandleErrorWhenNoQueryHandler() { |
118 | 121 | } |
119 | 122 |
|
120 | 123 | @Test |
121 | | - void shouldNotRespondQueryEnrichPostProcess() { |
122 | | - Message message = spy(TestStubs.mockMessage()); |
123 | | - Function<Mono<Object>, Mono<Object>> handler = applicationQueryListener.enrichPostProcess(message); |
124 | | - Mono<Object> result = handler.apply(empty()); |
| 124 | + @SuppressWarnings("unchecked") |
| 125 | + void enrichPostProcessShouldPropagateEmptyResponses() { |
| 126 | + Message message = TestStubs.mockMessage(); |
| 127 | + PublisherProbe<Void> publishProbe = PublisherProbe.empty(); |
| 128 | + |
| 129 | + ArgumentCaptor<Map<String, Object>> headersCaptor = ArgumentCaptor.forClass(Map.class); |
| 130 | + |
| 131 | + when(sender.sendNoConfirm(any(), anyString(), anyString(), headersCaptor.capture(), anyBoolean())) |
| 132 | + .thenReturn(publishProbe.mono()); |
| 133 | + |
| 134 | + Function<Mono<Object>, Mono<Object>> transformer = applicationQueryListener.enrichPostProcess(message); |
| 135 | + Mono<Object> result = transformer.apply(empty()); |
125 | 136 |
|
126 | 137 | StepVerifier.create(result) |
127 | 138 | .verifyComplete(); |
128 | 139 |
|
129 | | - verify(message, times(0)).getProperties(); |
| 140 | + publishProbe.assertWasSubscribed(); |
| 141 | + |
| 142 | + assertThat(headersCaptor.getValue().get(COMPLETION_ONLY_SIGNAL)) |
| 143 | + .isEqualTo("true"); |
130 | 144 | } |
131 | 145 |
|
132 | 146 | @Test |
|
0 commit comments