package org.jtwig.render.node.renderer; import com.google.common.base.Optional; import org.jtwig.model.tree.BlockNode; import org.jtwig.model.tree.Node; import org.jtwig.render.RenderRequest; import org.jtwig.render.context.model.BlockContext; import org.jtwig.render.context.model.BlockDefinition; import org.jtwig.renderable.Renderable; import org.jtwig.resource.reference.ResourceReference; import org.junit.Test; import static org.junit.Assert.assertSame; import static org.mockito.Mockito.*; public class BlockNodeRenderTest { private BlockNodeRender underTest = new BlockNodeRender(); @Test public void render() throws Exception { String identifier = "identifier"; RenderRequest request = mock(RenderRequest.class, RETURNS_DEEP_STUBS); Renderable renderable = mock(Renderable.class); BlockNode node = mock(BlockNode.class); Node content = mock(Node.class); BlockContext blockContext = mock(BlockContext.class); ResourceReference reference = mock(ResourceReference.class); when(node.getIdentifier()).thenReturn(identifier); when(request.getRenderContext().getCurrent(ResourceReference.class)).thenReturn(reference); when(request.getRenderContext().getCurrent(BlockContext.class)).thenReturn(blockContext); when(blockContext.get(identifier)).thenReturn(Optional.of(new BlockDefinition(content, reference))); when(request.getEnvironment().getRenderEnvironment().getRenderNodeService().render(request, content)) .thenReturn(renderable); Renderable result = underTest.render(request, node); assertSame(renderable, result); verify(request.getRenderContext().getCurrent(BlockContext.class)).add(node, reference); } }