import org.oransc.policyagent.repository.ImmutablePolicyType;
import org.oransc.policyagent.repository.PolicyType;
import org.oransc.policyagent.utils.LoggingUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.reactive.function.client.WebClientResponseException;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
public class DmaapMessageHandlerTest {
-
+ private static final Logger logger = LoggerFactory.getLogger(DmaapMessageHandlerTest.class);
private static final String URL = "url";
private final MRBatchingPublisher dmaapClient = mock(MRBatchingPublisher.class);
return gson.toJson(dmaapRequestMessage(operation));
}
+ private Mono<ResponseEntity<String>> okResponse() {
+ ResponseEntity<String> entity = new ResponseEntity<>("OK", HttpStatus.OK);
+ return Mono.just(entity);
+ }
+
@Test
public void testMessageParsing() {
String message = dmaapInputMessage(Operation.DELETE);
- System.out.println(message);
+ logger.info(message);
DmaapRequestMessage parsedMessage = gson.fromJson(message, ImmutableDmaapRequestMessage.class);
assertTrue(parsedMessage != null);
assertFalse(parsedMessage.payload().isPresent());
message = dmaapInputMessage(Operation.PUT);
- System.out.println(message);
+ logger.info(message);
parsedMessage = gson.fromJson(message, ImmutableDmaapRequestMessage.class);
assertTrue(parsedMessage != null);
assertTrue(parsedMessage.payload().isPresent());
@Test
public void successfulDelete() throws IOException {
- doReturn(Mono.just("OK")).when(agentClient).delete(anyString());
+ doReturn(okResponse()).when(agentClient).deleteForEntity(anyString());
doReturn(1).when(dmaapClient).send(anyString());
doReturn(new MRPublisherResponse()).when(dmaapClient).sendBatchWithResponse();
.expectNext("OK") //
.verifyComplete(); //
- verify(agentClient).delete(URL);
+ verify(agentClient).deleteForEntity(URL);
verifyNoMoreInteractions(agentClient);
verify(dmaapClient).send(anyString());
@Test
public void successfulGet() throws IOException {
- doReturn(Mono.just("OK")).when(agentClient).get(anyString());
+ doReturn(okResponse()).when(agentClient).getForEntity(anyString());
doReturn(1).when(dmaapClient).send(anyString());
doReturn(new MRPublisherResponse()).when(dmaapClient).sendBatchWithResponse();
.expectNext("OK") //
.verifyComplete(); //
- verify(agentClient).get(URL);
+ verify(agentClient).getForEntity(URL);
verifyNoMoreInteractions(agentClient);
verify(dmaapClient).send(anyString());
@Test
public void successfulPut() throws IOException {
- doReturn(Mono.just("OK")).when(agentClient).put(anyString(), anyString());
+ doReturn(okResponse()).when(agentClient).putForEntity(anyString(), anyString());
doReturn(1).when(dmaapClient).send(anyString());
doReturn(new MRPublisherResponse()).when(dmaapClient).sendBatchWithResponse();
.expectNext("OK") //
.verifyComplete(); //
- verify(agentClient).put(URL, payloadAsString());
+ verify(agentClient).putForEntity(URL, payloadAsString());
verifyNoMoreInteractions(agentClient);
verify(dmaapClient).send(anyString());
@Test
public void successfulPost() throws IOException {
- doReturn(Mono.just("OK")).when(agentClient).post(anyString(), anyString());
+ doReturn(okResponse()).when(agentClient).postForEntity(anyString(), anyString());
doReturn(1).when(dmaapClient).send(anyString());
doReturn(new MRPublisherResponse()).when(dmaapClient).sendBatchWithResponse();
.expectNext("OK") //
.verifyComplete(); //
- verify(agentClient).post(URL, payloadAsString());
+ verify(agentClient).postForEntity(URL, payloadAsString());
verifyNoMoreInteractions(agentClient);
verify(dmaapClient).send(anyString());
@Test
public void exceptionWhenCallingPolicyAgent_thenNotFoundResponse() throws IOException {
- String errorCause = "Refused";
- doReturn(Mono.error(new Exception(errorCause))).when(agentClient).put(anyString(), any());
+ WebClientResponseException except = new WebClientResponseException(400, "Refused", null, null, null, null);
+ doReturn(Mono.error(except)).when(agentClient).putForEntity(anyString(), any());
doReturn(1).when(dmaapClient).send(anyString());
doReturn(new MRPublisherResponse()).when(dmaapClient).sendBatchWithResponse();
.expectSubscription() //
.verifyComplete(); //
- verify(agentClient).put(anyString(), anyString());
+ verify(agentClient).putForEntity(anyString(), anyString());
verifyNoMoreInteractions(agentClient);
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
verify(dmaapClient).send(captor.capture());
String actualMessage = captor.getValue();
- assertThat(actualMessage.contains(HttpStatus.NOT_FOUND + "\",\"message\":\"java.lang.Exception: " + errorCause))
- .isTrue();
+ assertThat(actualMessage.contains(HttpStatus.BAD_REQUEST.toString())).isTrue();
verify(dmaapClient).sendBatchWithResponse();
verifyNoMoreInteractions(dmaapClient);
verify(dmaapClient).send(captor.capture());
String actualMessage = captor.getValue();
assertThat(actualMessage
- .contains(HttpStatus.NOT_FOUND + "\",\"message\":\"Not implemented operation: " + badOperation)).isTrue();
+ .contains(HttpStatus.BAD_REQUEST + "\",\"message\":\"Not implemented operation: " + badOperation)).isTrue();
verify(dmaapClient).sendBatchWithResponse();
verifyNoMoreInteractions(dmaapClient);