use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class RequestInfoSetterHandlerTest method doChannelRead_releases_content_and_returns_do_not_fire_when_state_is_null_or_response_already_sent.
@DataProvider(value = { "true | false", "false | true", "true | true" }, splitBy = "\\|")
@Test
public void doChannelRead_releases_content_and_returns_do_not_fire_when_state_is_null_or_response_already_sent(boolean stateIsNull, boolean responseAlreadySent) {
// given
if (stateIsNull)
doReturn(null).when(stateAttrMock).get();
if (responseAlreadySent) {
doReturn(true).when(stateMock).isResponseSendingLastChunkSent();
}
// when
PipelineContinuationBehavior result = handler.doChannelRead(ctxMock, httpContentMock);
// then
verify(httpContentMock).release();
assertThat(result).isEqualTo(PipelineContinuationBehavior.DO_NOT_FIRE_CONTINUE_EVENT);
}
use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class RequestContentValidationHandlerTest method doChannelRead_does_nothing_if_request_getRawContentLengthInBytes_returns_0.
@Test
public void doChannelRead_does_nothing_if_request_getRawContentLengthInBytes_returns_0() throws Exception {
// given
doReturn(0).when(requestInfoMock).getRawContentLengthInBytes();
// when
PipelineContinuationBehavior result = handler.doChannelRead(ctxMock, msg);
// then
verifyNoMoreInteractions(requestValidatorMock);
assertThat(result).isEqualTo(PipelineContinuationBehavior.CONTINUE);
}
use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class ResponseSenderHandlerTest method doExceptionCaught_calls_sendResponse_and_returns_CONTINUE.
@Test
public void doExceptionCaught_calls_sendResponse_and_returns_CONTINUE() throws Exception {
// when
PipelineContinuationBehavior result = handlerSpy.doExceptionCaught(ctxMock, new Exception("intentional test exception"));
// then
verify(handlerSpy).sendResponse(ctxMock, null);
assertThat(result).isEqualTo(PipelineContinuationBehavior.CONTINUE);
}
use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class ExceptionHandlingHandlerTest method doExceptionCaught_should_call_getStateAndCreateIfNeeded_and_then_processError_and_then_set_response_on_state_and_return_CONTINUE.
@Test
public void doExceptionCaught_should_call_getStateAndCreateIfNeeded_and_then_processError_and_then_set_response_on_state_and_return_CONTINUE() throws Exception {
// given
ExceptionHandlingHandler handlerSpy = spy(handler);
Throwable cause = new Exception("intentional test exception");
ResponseInfo<ErrorResponseBody> errorResponseMock = mock(ResponseInfo.class);
doReturn(errorResponseMock).when(handlerSpy).processError(state, null, cause);
assertThat(state.getResponseInfo(), nullValue());
// when
PipelineContinuationBehavior result = handlerSpy.doExceptionCaught(ctxMock, cause);
// then
verify(handlerSpy).getStateAndCreateIfNeeded(ctxMock, cause);
verify(handlerSpy).processError(state, null, cause);
assertThat(state.getResponseInfo(), is(errorResponseMock));
assertThat(result, is(PipelineContinuationBehavior.CONTINUE));
}
use of com.nike.riposte.server.handler.base.PipelineContinuationBehavior in project riposte by Nike-Inc.
the class ExceptionHandlingHandlerTest method doExceptionCaught_should_do_nothing_and_return_DO_NOT_FIRE_CONTINUE_EVENT_if_response_sending_already_started.
@Test
public void doExceptionCaught_should_do_nothing_and_return_DO_NOT_FIRE_CONTINUE_EVENT_if_response_sending_already_started() throws Exception {
// given
ExceptionHandlingHandler handlerSpy = spy(handler);
Throwable cause = new Exception("intentional test exception");
ResponseInfo<?> responseInfoMock = mock(ResponseInfo.class);
doReturn(true).when(responseInfoMock).isResponseSendingStarted();
state.setResponseInfo(responseInfoMock);
// when
PipelineContinuationBehavior result = handlerSpy.doExceptionCaught(ctxMock, cause);
// then
verify(handlerSpy, never()).processError(any(HttpProcessingState.class), any(Object.class), any(Throwable.class));
Assertions.assertThat(result).isEqualTo(DO_NOT_FIRE_CONTINUE_EVENT);
}
Aggregations