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 java.math.BigDecimal.valueOf; 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 AmountsNegationTest { @Parameters(name = "Case {index}: negation of {0} USD is {1} USD") public static Collection<Object[]> data() { return Arrays.asList(new Object[][]{ { BigDecimal.ZERO, BigDecimal.ZERO }, { valueOf(10), valueOf(-10) }, { valueOf(1), valueOf(-1) }, { valueOf(-0.002), valueOf(0.002) }, { valueOf(-421.233), valueOf(421.233) } }); } @Parameter public BigDecimal input; @Parameter(1) public BigDecimal expectedResult; @Test public void test() { assertThat(Amounts.negate(new Amount(input, CurrencyCode.USD))) .isEqualToComparingFieldByField(new Amount(expectedResult, CurrencyCode.USD)); } }