-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathServiceBusClientServiceTest.java
More file actions
66 lines (55 loc) · 2.47 KB
/
ServiceBusClientServiceTest.java
File metadata and controls
66 lines (55 loc) · 2.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package uk.gov.hmcts.cp.servicebus.services;
import com.azure.messaging.servicebus.ServiceBusMessage;
import com.azure.messaging.servicebus.ServiceBusSenderClient;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.slf4j.MDC;
import uk.gov.hmcts.cp.servicebus.config.ServiceBusConfigService;
import uk.gov.hmcts.cp.servicebus.mapper.ServiceBusMapper;
import uk.gov.hmcts.cp.servicebus.mapper.ServiceBusWrapperMapper;
import uk.gov.hmcts.cp.servicebus.model.ServiceBusWrappedMessage;
import uk.gov.hmcts.cp.subscription.services.JsonMapper;
import java.time.OffsetDateTime;
import java.util.UUID;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static uk.gov.hmcts.cp.filters.TracingFilter.CORRELATION_ID_KEY;
import static uk.gov.hmcts.cp.servicebus.config.ServiceBusConfigService.PCR_INBOUND_TOPIC;
@ExtendWith(MockitoExtension.class)
class ServiceBusClientServiceTest {
@Mock
ServiceBusConfigService configService;
@Mock
ServiceBusWrapperMapper wrapperMapper;
@Mock
ServiceBusRetryService retryService;
@Mock
ServiceBusMapper mapper;
@Mock
JsonMapper jsonMapper;
@InjectMocks
ServiceBusClientService clientService;
@Mock
ServiceBusSenderClient senderClient;
OffsetDateTime nextTryTime = OffsetDateTime.now();
String callbackUrl = "http://callback";
ServiceBusWrappedMessage wrappedMessage = ServiceBusWrappedMessage.builder().build();
ServiceBusMessage serviceBusMessage = new ServiceBusMessage("wrapped-Message");
@Test
void queue_message_should_pass_to_topic() {
UUID correlationId = UUID.randomUUID();
MDC.put(CORRELATION_ID_KEY, correlationId.toString());
when(configService.senderClient(PCR_INBOUND_TOPIC)).thenReturn(senderClient);
when(wrapperMapper.newWrapper(correlationId, 1, callbackUrl, "message")).thenReturn(wrappedMessage);
when(jsonMapper.toJson(wrappedMessage)).thenReturn("wrapped-message");
when(retryService.getNextTryTime(1)).thenReturn(nextTryTime);
when(mapper.newMessage("wrapped-message", nextTryTime)).thenReturn(serviceBusMessage);
clientService.queueMessage(PCR_INBOUND_TOPIC, callbackUrl, "message", 1);
verify(senderClient).sendMessage(serviceBusMessage);
verify(senderClient).close();
MDC.remove("correlationId");
}
}