@Override public void preVisit (final @Nonnull Layout layout) { final ComponentType component = createComponent(layout); if (rootComponent == null) { rootComponent = component; } else { attach((ComponentContainerType)components.peek(), component); } components.push(component); }
@Nonnull private ComponentType createComponent (@Nonnull Layout layout) { try { return (ComponentType)layout.createView(siteNode); } catch (NotFoundException e) { return createPlaceHolderComponent(layout); } }
/******************************************************************************************************************* * ******************************************************************************************************************/ @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(); }
/******************************************************************************************************************* * ******************************************************************************************************************/ 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_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(); }
resetRequestResettables(); requestHolder.set(request); resetRequestResettables();
/******************************************************************************************************************* * ******************************************************************************************************************/ @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(); }