/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_call_all_RequestProcessors_in_normal_scenario() throws Exception { Object result = underTest.processRequest(request); assertThat(result, sameInstance(response)); final InOrder inOrder = createInOrder(); inOrder.verify(mockRequestResettable1).requestReset(); inOrder.verify(mockRequestResettable2).requestReset(); inOrder.verify(requestHolder).set(same(request)); inOrder.verify(mockRequestProcessor1).process(same(request)); inOrder.verify(mockRequestProcessor2).process(same(request)); inOrder.verify(mockRequestProcessor3).process(same(request)); inOrder.verify(mockRequestProcessor4).process(same(request)); inOrder.verify(mockRequestProcessor5).process(same(request)); inOrder.verify(mockRequestResettable1).requestReset(); inOrder.verify(mockRequestResettable2).requestReset(); // inOrder.verifyNoMoreInteractions(); }
/******************************************************************************************************************* * ******************************************************************************************************************/ protected void commonExceptionTestSequence() throws HttpStatusException, IOException, NotFoundException { final Object result = underTest.processRequest(request); assertThat(result, sameInstance(response)); final InOrder inOrder = createInOrder(); inOrder.verify(mockRequestResettable1).requestReset(); inOrder.verify(mockRequestResettable2).requestReset(); inOrder.verify(requestHolder).set(same(request)); inOrder.verify(mockRequestProcessor1).process(same(request)); inOrder.verify(mockRequestProcessor2).process(same(request)); inOrder.verify(mockRequestProcessor3).process(same(request)); verifyZeroInteractions(mockRequestProcessor4); verifyZeroInteractions(mockRequestProcessor5); inOrder.verify(mockRequestResettable1).requestReset(); inOrder.verify(mockRequestResettable2).requestReset(); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_call_some_RequestProcessors_when_RuntimeException() throws Exception { final RuntimeException e = new RuntimeException("Purportedly thrown exception"); mockRequestProcessor3.setThrowable(e); commonExceptionTestSequence(); verify(responseBuilder).forException(same(e)); // inOrder.verifyNoMoreInteractions(); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_call_some_RequestProcessors_when_one_breaks() throws Exception { mockRequestProcessor3.setStatus(Status.BREAK); Object result = underTest.processRequest(request); assertThat(result, sameInstance(response)); final InOrder inOrder = createInOrder(); inOrder.verify(mockRequestResettable1).requestReset(); inOrder.verify(mockRequestResettable2).requestReset(); inOrder.verify(requestHolder).set(same(request)); verifyZeroInteractions(mockRequestProcessor4); verifyZeroInteractions(mockRequestProcessor5); inOrder.verify(mockRequestProcessor1).process(same(request)); inOrder.verify(mockRequestProcessor2).process(same(request)); inOrder.verify(mockRequestProcessor3).process(same(request)); inOrder.verify(mockRequestResettable1).requestReset(); inOrder.verify(mockRequestResettable2).requestReset(); // inOrder.verifyNoMoreInteractions(); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_call_some_RequestProcessors_when_HttpStatusException_with_SC_FOUND() throws Exception { final HttpStatusException e = new HttpStatusException(SC_FOUND); mockRequestProcessor3.setThrowable(e); commonExceptionTestSequence(); verify(responseBuilder).forException(same(e)); // inOrder.verifyNoMoreInteractions(); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_call_some_RequestProcessors_when_NotFoundException() throws Exception { final NotFoundException e = new NotFoundException(); mockRequestProcessor3.setThrowable(e); commonExceptionTestSequence(); verify(responseBuilder).forException(same(e)); // inOrder.verifyNoMoreInteractions(); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_call_some_RequestProcessors_when_HttpStatusException_with_generic_Http_status() throws Exception { final HttpStatusException e = new HttpStatusException(SC_NOT_ACCEPTABLE); mockRequestProcessor3.setThrowable(e); commonExceptionTestSequence(); verify(responseBuilder).forException(same(e)); // inOrder.verifyNoMoreInteractions(); }