@Test public void testInitListeners() throws Exception { // GIVEN AggregationStateBasedRenderingContext renderingContext = mock(AggregationStateBasedRenderingContext.class); DefaultRenderingEngine renderingEngine = this.createDefaultRenderingEngine(null, null, renderingContext); LinkedList<AbstractRenderingListener> listeners = new LinkedList<AbstractRenderingListener>(); when(listener.init(null, null)).thenReturn(null); listeners.add(listener); AbstractRenderingListener listener2 = mock(AbstractRenderingListener.class); when(listener2.copy()).thenReturn(listener2); when(listener2.init(null, null)).thenReturn(RenderingListenerReturnCode.SKIP); listeners.add(listener2); renderingEngine.setListeners(listeners); // WHEN renderingEngine.initListeners(null, null); // THEN verify(renderingContext, times(1)).setListeners(any(List.class)); verify(renderingContext, times(1)).addListener(isA(AbstractRenderingListener.class)); verifyNoMoreInteractions(renderingContext); }
@Test public void testListeners() throws Exception { // GIVEN AbstractRenderingListener listener1 = mock(AbstractRenderingListener.class); AbstractRenderingListener listener2 = mock(AbstractRenderingListener.class); Node content = mock(Node.class); RenderableDefinition definition = mock(RenderableDefinition.class); Map<String, Object> contextObjects = new HashMap<String, Object>(); OutputProvider out = mock(OutputProvider.class); context.addListener(listener1); context.addListener(listener2); InOrder inOrder = inOrder(listener1, listener2); // WHEN context.before(content, definition, contextObjects, out); // THEN inOrder.verify(listener1).before(content, definition, contextObjects, out); inOrder.verify(listener2).before(content, definition, contextObjects, out); // WHEN context.after(content, definition, contextObjects, out); // THEN inOrder.verify(listener2).after(content, definition, contextObjects, out); inOrder.verify(listener1).after(content, definition, contextObjects, out); }
@Test public void testListenersBefore() throws Exception { // GIVEN Node content = new MockNode("parent"); ConfiguredTemplateDefinition template = new ConfiguredTemplateDefinition(new ConfiguredTemplateAvailability()); template.setRenderType(FREEMARKER_RENDERER_TYPE); Renderer renderer = registerMockRenderer(rendererRegistry); AggregationStateBasedRenderingContext renderingContext = new AggregationStateBasedRenderingContext(new AggregationState(), null); TemplateDefinitionAssignment templateDefinitionAssignment = mock(TemplateDefinitionAssignment.class); DefaultRenderingEngine renderingEngine = createDefaultRenderingEngine(rendererRegistry, templateDefinitionAssignment, renderingContext); when(templateDefinitionAssignment.getAssignedTemplateDefinition(content)).thenReturn(template); when(listener.before(content, template, null, null)).thenReturn(RenderingListenerReturnCode.SKIP); renderingContext.addListener(listener); // WHEN renderingEngine.render(content, template, null, null); // THEN verify(renderer, never()).render(any(RenderingContext.class), any(Map.class)); }