package org.jtwig.render.expression.calculator; import com.google.common.collect.ImmutableMap; import org.jtwig.model.expression.Expression; import org.jtwig.model.expression.MapExpression; import org.jtwig.render.RenderRequest; import org.junit.Test; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; public class MapExpressionCalculatorTest { private MapExpressionCalculator underTest = new MapExpressionCalculator(); @Test public void calculate() throws Exception { RenderRequest request = mock(RenderRequest.class, RETURNS_DEEP_STUBS); MapExpression expression = mock(MapExpression.class); Expression aExpression = mock(Expression.class); Expression bExpression = mock(Expression.class); Object aValue = new Object(); Object bValue = new Object(); when(expression.getExpressions()).thenReturn(ImmutableMap.<String, Expression>builder() .put("a", aExpression) .put("b", bExpression) .build()); when(request.getEnvironment().getRenderEnvironment().getCalculateExpressionService().calculate(request, aExpression)).thenReturn(aValue); when(request.getEnvironment().getRenderEnvironment().getCalculateExpressionService().calculate(request, bExpression)).thenReturn(bValue); Object result = underTest.calculate(request, expression); assertEquals(ImmutableMap.builder() .put("a", aValue) .put("b", bValue) .build(), result); } }