use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class RequestContentDeserializerHandlerTest method doChannelRead_does_nothing_if_requestContentType_is_null.
@Test
public void doChannelRead_does_nothing_if_requestContentType_is_null() throws Exception {
// given
doReturn(null).when(endpointMock).requestContentType();
// when
PipelineContinuationBehavior result = handler.doChannelRead(ctxMock, msg);
// then
verify(stateMock).getEndpointForExecution();
verify(stateMock).getRequestInfo();
verifyNoMoreInteractions(stateMock);
verify(endpointMock).requestContentType();
verify(requestInfoSpy).isCompleteRequestWithAllChunks();
verifyNoMoreInteractions(endpointMock);
verifyNoMoreInteractions(requestInfoSpy);
assertThat(result).isEqualTo(PipelineContinuationBehavior.CONTINUE);
}
use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class RequestContentDeserializerHandlerTest method doChannelRead_uses_TypeReference_from_endpoint_requestContentType_method.
@Test
public void doChannelRead_uses_TypeReference_from_endpoint_requestContentType_method() throws Exception {
// given
TypeReference<String> customTypeReference = new TypeReference<String>() {
};
doReturn(customTypeReference).when(endpointMock).requestContentType();
// when
PipelineContinuationBehavior result = handler.doChannelRead(ctxMock, msg);
// then
ArgumentCaptor<TypeReference> typeRefArgumentCaptor = ArgumentCaptor.forClass(TypeReference.class);
verify(requestInfoSpy).setupContentDeserializer(eq(defaultHandlerDeserializerMock), typeRefArgumentCaptor.capture());
TypeReference<String> actualTypeRef = typeRefArgumentCaptor.getValue();
assertThat(actualTypeRef).isSameAs(customTypeReference);
assertThat(actualTypeRef).isNotSameAs(contentTypeRef);
assertThat(result).isEqualTo(PipelineContinuationBehavior.CONTINUE);
}
use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class RequestContentDeserializerHandlerTest method doChannelRead_does_nothing_if_msg_is_not_LastHttpContent.
@Test
public void doChannelRead_does_nothing_if_msg_is_not_LastHttpContent() throws Exception {
// given
Object wrongMsgType = new Object();
// when
PipelineContinuationBehavior result = handler.doChannelRead(ctxMock, wrongMsgType);
// then
verifyNoInteractions(ctxMock);
verifyNoInteractions(stateMock);
verifyNoInteractions(endpointMock);
verifyNoInteractions(requestInfoSpy);
assertThat(result).isEqualTo(PipelineContinuationBehavior.CONTINUE);
}
use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class RequestContentDeserializerHandlerTest method doChannelRead_uses_custom_deserializer_if_custom_endpoint_one_is_not_null.
@Test
public void doChannelRead_uses_custom_deserializer_if_custom_endpoint_one_is_not_null() throws Exception {
// given
ObjectMapper customDeserializerMock = mock(ObjectMapper.class);
doReturn(customDeserializerMock).when(endpointMock).customRequestContentDeserializer(any());
// when
PipelineContinuationBehavior result = handler.doChannelRead(ctxMock, msg);
// then
verify(requestInfoSpy).setupContentDeserializer(customDeserializerMock, contentTypeRef);
assertThat(result).isEqualTo(PipelineContinuationBehavior.CONTINUE);
}
use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class RequestFilterHandlerTest method handleFilterLogic_executes_all_filters_and_uses_original_request_when_filters_are_mixed_type_and_return_null.
@DataProvider(value = { "true", "false" }, splitBy = "\\|")
@Test
public void handleFilterLogic_executes_all_filters_and_uses_original_request_when_filters_are_mixed_type_and_return_null(boolean isFirstChunk) {
// given
HandleFilterLogicMethodCallArgs args = new HandleFilterLogicMethodCallArgs(isFirstChunk);
doReturn(true).when(filtersList.get(0)).isShortCircuitRequestFilter();
doReturn(false).when(filtersList.get(1)).isShortCircuitRequestFilter();
// when
PipelineContinuationBehavior result = handlerSpy.handleFilterLogic(ctxMock, args.msg, args.httpState, args.normalFilterCall, args.shortCircuitFilterCall);
// then
assertThat(result).isEqualTo(CONTINUE);
filtersList.forEach(filter -> {
boolean shortCircuiting = filter.isShortCircuitRequestFilter();
if (isFirstChunk) {
if (shortCircuiting)
verify(filter).filterRequestFirstChunkWithOptionalShortCircuitResponse(requestInfoMock, ctxMock);
else
verify(filter).filterRequestFirstChunkNoPayload(requestInfoMock, ctxMock);
} else {
if (shortCircuiting)
verify(filter).filterRequestLastChunkWithOptionalShortCircuitResponse(requestInfoMock, ctxMock);
else
verify(filter).filterRequestLastChunkWithFullPayload(requestInfoMock, ctxMock);
}
});
assertThat(state.getRequestInfo()).isSameAs(requestInfoMock);
}
Aggregations