package io.konik.util;
import com.neovisionaries.i18n.CurrencyCode;
import io.konik.zugferd.unqualified.Amount;
import org.junit.Test;
import java.math.BigDecimal;
import static org.assertj.core.api.Assertions.assertThat;
public class AmountsTest {
@Test(expected = IllegalArgumentException.class)
public void shouldThrowIllegalArgumentExceptionIfFirstAmountIsNull() {
//when:
Amounts.add(null, null);
}
@Test(expected = IllegalArgumentException.class)
public void shouldThrowIllegalArgumentExceptionIfAmountsHaveDifferentCurrencies() {
//when:
Amounts.add(Amounts.zero(CurrencyCode.USD), Amounts.zero(CurrencyCode.EUR));
}
@Test
public void shouldTreatNullValueAsZeroWhenAddingToNonNullAmountAsAFirstParameter() {
//given:
Amount amount = new Amount(BigDecimal.valueOf(43.55), CurrencyCode.USD);
//when:
Amount result = Amounts.add(amount, null);
//then:
assertThat(result).isEqualToComparingFieldByField(amount);
}
@Test
public void shouldTreatNullValueAsZeroWhenAddingToNonNullAmountAsASecondParameter() {
//given:
Amount amount = new Amount(BigDecimal.valueOf(43.55), CurrencyCode.USD);
//when:
Amount result = Amounts.add(null, amount);
//then:
assertThat(result).isEqualToComparingFieldByField(amount);
}
}