package org.jtwig.render.expression.calculator.operation.binary.calculators; import org.jtwig.render.RenderRequest; import org.junit.Test; import java.math.BigDecimal; import java.math.RoundingMode; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.*; public class IntegerMultiplyOperationCalculatorTest { private IntegerMultiplyOperationCalculator underTest = new IntegerMultiplyOperationCalculator(); @Test public void calculate() throws Exception { RoundingMode roundingMode = RoundingMode.CEILING; RenderRequest request = mock(RenderRequest.class, RETURNS_DEEP_STUBS); BigDecimal left = mock(BigDecimal.class); BigDecimal right = mock(BigDecimal.class); BigDecimal leftRounded = mock(BigDecimal.class); BigDecimal rightRounded = mock(BigDecimal.class); BigDecimal expected = mock(BigDecimal.class); when(request.getEnvironment().getValueEnvironment().getRoundingMode()).thenReturn(roundingMode); when(left.setScale(0, roundingMode)).thenReturn(leftRounded); when(right.setScale(0, roundingMode)).thenReturn(rightRounded); when(leftRounded.multiply(rightRounded)).thenReturn(expected); BigDecimal result = underTest.calculate(request, left, right); assertEquals(expected, result); } }