Beispiel #1
0
        public void TestSimpleAddition()
        {
            Money           five   = Money.Dollar(5);
            IBankExpression result = five.Plus(five);
            Sum             sum    = (Sum)result;

            Assert.Equal(five, sum.Augend);
        }
Beispiel #2
0
        public void TestMixedAddition()
        {
            IBankExpression fiveBucks = Money.Dollar(5);
            IBankExpression tenFrancs = Money.Franc(10);
            var             bank      = new Bank();

            bank.AddRate("CHF", "USD", 2);
            var result = bank.Reduce(fiveBucks.Plus(tenFrancs), "USD");

            Assert.Equal(Money.Dollar(10), result);
        }
Beispiel #3
0
        public void TestSumTimesMoney()
        {
            IBankExpression fiveBucks = Money.Dollar(5);
            IBankExpression tenFrancs = Money.Franc(10);
            var             bank      = new Bank();

            bank.AddRate("CHF", "USD", 2);
            IBankExpression sum    = new Sum(fiveBucks, tenFrancs).Times(2);
            var             result = bank.Reduce(sum, "USD");

            Assert.Equal(Money.Dollar(20), result);
        }
Beispiel #4
0
 public Sum(IBankExpression augend, IBankExpression addend)
 {
     Augend = augend;
     Addend = addend;
 }
Beispiel #5
0
 public IBankExpression Plus(IBankExpression addend)
 {
     return(new Sum(this, addend));
 }
Beispiel #6
0
 public Money Reduce(IBankExpression source, string to)
 {
     return(source.Reduce(this, to));
 }
Beispiel #7
0
        public void TestPlusSameCurrencyReturnsMoney()
        {
            IBankExpression sum = Money.Dollar(1).Plus(Money.Dollar(1));

            Assert.True(sum is Sum);
        }