package io.oasp.gastronomy.restaurant.general.common;
import io.oasp.gastronomy.restaurant.general.common.api.MoneyHelper;
import io.oasp.gastronomy.restaurant.general.common.api.datatype.Money;
import io.oasp.module.test.common.base.ModuleTest;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
/**
* This class tests the {@link MoneyHelper}. Especially summing a List of @Link {@link Money}s.
*
*/
public class MoneyHelperTest extends ModuleTest {
// /**
// * Test for summing up {@link Money}s with other currency (USD) then default (EUR).
// */
// @Test
// public void sumTestUSDList() {
//
// List<Money> moneyList = new ArrayList<>();
//
// double[] amounts = { 10.0, 15.2, 47.11, 42.0 };
// double sum = 0.0;
//
// for (double amount : amounts) {
// moneyList.add(MoneyHelper.getMoney(amount, "USD"));
// sum += amount;
// }
//
// Money summedAmount = MoneyHelper.sumMoneys(moneyList);
//
// assertThat(MoneyHelper.getMoney(sum, "USD")).isEqualTo(summedAmount);
//
// }
/**
* Test behavior when passing an empty list.
*/
@Test
public void sumTestEmptyList() {
List<Money> moneyList = new ArrayList<>();
Money summedAmount = MoneyHelper.sumMoneys(moneyList);
assertThat(MoneyHelper.ZERO_MONEY).isEqualTo(summedAmount);
}
/**
* Test for summing up {@link Money}s with default currency (EUR).
*/
@Test
public void sumTestEURList() {
List<Money> moneyList = new ArrayList<>();
double[] amounts = { 15.28, 11.47, 4.20 };
double sum = 0.0;
for (double amount : amounts) {
moneyList.add(MoneyHelper.getMoneyWithDefaultCurrency(amount));
sum += amount;
}
Money summedAmount = MoneyHelper.sumMoneys(moneyList);
assertThat(MoneyHelper.getMoney(sum, "EUR")).isEqualTo(summedAmount);
}
}