package org.jtwig.value.context; import org.jtwig.value.Undefined; import org.junit.Test; import static org.junit.Assert.assertSame; import static org.mockito.Mockito.*; public class IsolateParentValueContextTest { private final ValueContext parent = mock(ValueContext.class); private final ValueContext current = mock(ValueContext.class); private IsolateParentValueContext underTest = new IsolateParentValueContext(parent, current); @Test public void resolveCurrentNull() throws Exception { String key = "key"; Object value = null; when(current.resolve(key)).thenReturn(value); Object result = underTest.resolve(key); verifyZeroInteractions(parent); assertSame(value, result); } @Test public void resolveCurrentNotNull() throws Exception { String key = "key"; Object value = new Object(); when(current.resolve(key)).thenReturn(value); Object result = underTest.resolve(key); verifyZeroInteractions(parent); assertSame(value, result); } @Test public void resolveCurrentUndefined() throws Exception { String key = "key"; Object value = Undefined.UNDEFINED; Object expected = new Object(); when(current.resolve(key)).thenReturn(value); when(parent.resolve(key)).thenReturn(expected); Object result = underTest.resolve(key); assertSame(expected, result); } @Test public void with() throws Exception { Object value = new Object(); String key = "key"; underTest.with(key, value); verify(current).with(key, value); verifyZeroInteractions(parent); } }