package io.konik.util; import com.neovisionaries.i18n.CurrencyCode; import io.konik.zugferd.unqualified.Amount; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.math.BigDecimal; import java.util.Arrays; import java.util.Collection; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.runners.Parameterized.Parameter; import static org.junit.runners.Parameterized.Parameters; @RunWith(Parameterized.class) public class AmountsAddingParameterizedTest { private static final CurrencyCode CURRENCY = CurrencyCode.USD; @Parameters(name = "Case {index}: {0} + {1} = {2}") public static Collection<Object[]> data() { return Arrays.asList(new Object[][]{ { BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO }, { BigDecimal.ONE, BigDecimal.ZERO, BigDecimal.ONE }, { BigDecimal.ONE, BigDecimal.ONE, BigDecimal.valueOf(2) }, { BigDecimal.valueOf(10), BigDecimal.valueOf(-100), BigDecimal.valueOf(-90) }, { BigDecimal.valueOf(2.34), BigDecimal.valueOf(3.11), BigDecimal.valueOf(5.45) } }); } @Parameter public BigDecimal first; @Parameter(1) public BigDecimal second; @Parameter(2) public BigDecimal result; @Test public void test() { assertThat(Amounts.add(new Amount(first, CURRENCY), new Amount(second, CURRENCY))) .isEqualToComparingFieldByField(new Amount(result, CURRENCY)); } }