package org.jtwig.render.expression.calculator.operation.unary; import com.google.common.base.Optional; import org.jtwig.render.expression.calculator.operation.unary.calculators.UnaryOperationCalculator; import org.junit.Before; import org.junit.Test; import java.util.HashMap; import static org.junit.Assert.*; import static org.mockito.Mockito.mock; public class UnaryOperationCalculatorSelectorTest { private final HashMap<Class<? extends UnaryOperator>, UnaryOperationCalculator> calculatorMap = new HashMap<>(); private UnaryOperationCalculatorSelector underTest = new UnaryOperationCalculatorSelector(calculatorMap); @Before public void setUp() throws Exception { calculatorMap.clear(); } @Test public void calculatorForNotPresent() throws Exception { UnaryOperator operator = mock(UnaryOperator.class); Optional<UnaryOperationCalculator> result = underTest.calculatorFor(operator); assertFalse(result.isPresent()); } @Test public void calculatorForPresent() throws Exception { UnaryOperator operator = mock(UnaryOperator.class); UnaryOperationCalculator unaryOperationCalculator = mock(UnaryOperationCalculator.class); calculatorMap.put(operator.getClass(), unaryOperationCalculator); Optional<UnaryOperationCalculator> result = underTest.calculatorFor(operator); assertTrue(result.isPresent()); assertSame(unaryOperationCalculator, result.get()); } }