package org.jtwig.render.context.model; import com.google.common.base.Optional; import org.jtwig.model.tree.BlockNode; import org.jtwig.model.tree.Node; import org.jtwig.resource.reference.ResourceReference; import org.junit.Test; import org.mockito.internal.matchers.apachecommons.ReflectionEquals; import java.util.HashMap; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class BlockContextTest { private final HashMap<String, BlockDefinition> map = new HashMap<>(); private BlockContext underTest = new BlockContext(map); @Test public void getNotPresent() throws Exception { String identifier = "identifier"; Optional<BlockDefinition> result = underTest.get(identifier); assertEquals(false, result.isPresent()); } @Test public void getPresent() throws Exception { String identifier = "identifier"; BlockDefinition node = mock(BlockDefinition.class); map.put(identifier, node); Optional<BlockDefinition> result = underTest.get(identifier); assertEquals(true, result.isPresent()); assertEquals(node, result.get()); } @Test public void add() throws Exception { String identifier = "identifier"; Node node = mock(Node.class); BlockNode blockNode = mock(BlockNode.class); ResourceReference resourceReference = mock(ResourceReference.class); when(blockNode.getIdentifier()).thenReturn(identifier); when(blockNode.getContent()).thenReturn(node); underTest.add(blockNode, resourceReference); assertThat(map.get(identifier), new ReflectionEquals(new BlockDefinition(node, resourceReference))); } }