/
Irelion
/
tdd
Обзор
Документация
Войти
/
Irelion
/
tdd
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/test/java/example/MainTest.java
117 строк
4 KB
irelion
TDD-0005: add task 16
17 фев 2026, 15:22
17 фев 2026, 15:22
64001b2
Код
Авторство
О чём код?
package example; import org.junit.jupiter.api.Test; import static example.Currency.DOLLAR; import static example.Currency.FRANC; import static org.junit.jupiter.api.Assertions.*; class MainTest { private static Money ONE_DOLLAR = Money.dollar(1); private static Money ONE_FRANC= Money.franc(1); @Test void multiplicationTest() { final Money five = Money.dollar(5); assertEquals(Money.dollar(10), five.times(2)); assertEquals(Money.dollar(15), five.times(3)); } @Test void testEquality(){ assertTrue(Money.dollar(5).equals(Money.dollar(5))); assertFalse(Money.franc(5).equals(Money.franc(6))); assertFalse(Money.dollar(5).equals(Money.franc(5))); } @Test void testCurrency() { assertEquals("USD", ONE_DOLLAR.currency()); assertEquals("CHF", ONE_FRANC.currency()); } @Test void testSimpleAddition() { final Money five = Money.dollar(5); final Expression plus = five.plus(five); final Bank bank = new Bank(); final Money reduced = bank.reduce(plus, DOLLAR.getCurrency()); assertEquals(Money.dollar(10), reduced); } @Test void testPluReturnsSum() { final Money five = Money.dollar(5); final Expression result = five.plus(five); final Sum sum = ((Sum) result); assertEquals(five, sum.augend); assertEquals(five, sum.addend); } @Test void testReduceSum(){ final Expression sum = new Sum(Money.dollar(3), Money.dollar(4)); final Bank bank = new Bank(); final Money result = bank.reduce(sum, DOLLAR.getCurrency()); assertEquals(Money.dollar(7), result); } @Test void testReduceMoney(){ final Bank bank = new Bank(); final Money result = bank.reduce(ONE_DOLLAR, DOLLAR.getCurrency()); assertEquals(ONE_DOLLAR, result); } @Test void testReduceMoneyDifferentCurrent() { final Bank bank = new Bank(); bank.addRate(FRANC.getCurrency(), DOLLAR.getCurrency(), 2); final Money result = bank.reduce(Money.franc(2), DOLLAR.getCurrency()); assertEquals(ONE_DOLLAR, result); } @Test void testIdentityRate(){ assertEquals(1, new Bank().rate(DOLLAR.getCurrency(), DOLLAR.getCurrency())); } @Test void testMixedAdditions(){ final Expression fiveBucks = Money.dollar(5); final Expression tenFrancs = Money.franc(10); final Bank bank = new Bank(); bank.addRate(FRANC.getCurrency(), DOLLAR.getCurrency(), 2); final Money result = bank.reduce(fiveBucks.plus(tenFrancs), DOLLAR.getCurrency()); assertEquals(Money.dollar(10), result); } @Test void testSumPlusMoney() { final Expression fiveBucks = Money.dollar(5); final Expression tenFrancs = Money.franc(10); final Bank bank = new Bank(); bank.addRate(FRANC.getCurrency(), DOLLAR.getCurrency(), 2); final Expression sum = new Sum(fiveBucks, tenFrancs).plus(fiveBucks); final Money result = bank.reduce(sum, DOLLAR.getCurrency()); assertEquals(Money.dollar(15), result); } @Test void testSumTimes(){ final Expression fiveBucks = Money.dollar(5); final Expression tenFrancs = Money.franc(10); final Bank bank = new Bank(); bank.addRate(FRANC.getCurrency(), DOLLAR.getCurrency(), 2); final Expression sum = new Sum(fiveBucks, tenFrancs).times(2); final Money result = bank.reduce(sum, DOLLAR.getCurrency()); assertEquals(Money.dollar(20), result); } }