package org.jtwig.render.expression.test; import com.google.common.base.Optional; import org.jtwig.model.expression.test.TestExpression; import org.jtwig.render.expression.test.calculator.TestExpressionCalculator; import org.junit.Before; import org.junit.Test; import java.util.HashMap; import static org.hamcrest.core.Is.is; import static org.junit.Assert.assertSame; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; public class TestExpressionCalculatorSelectorTest { private final HashMap<Class<? extends TestExpression>, TestExpressionCalculator> calculatorMap = new HashMap<>(); private TestExpressionCalculatorSelector underTest = new TestExpressionCalculatorSelector(calculatorMap); @Before public void setUp() throws Exception { calculatorMap.clear(); } @Test public void calculatorForNotPresent() throws Exception { TestExpression testExpression = mock(TestExpression.class); Optional<TestExpressionCalculator> result = underTest.calculatorFor(testExpression); assertThat(result.isPresent(), is(false)); } @Test public void calculatorForPresent() throws Exception { TestExpression testExpression = mock(TestExpression.class); TestExpressionCalculator testExpressionCalculator = mock(TestExpressionCalculator.class); calculatorMap.put(testExpression.getClass(), testExpressionCalculator); Optional<TestExpressionCalculator> result = underTest.calculatorFor(testExpression); assertSame(testExpressionCalculator, result.get()); } }