예제 #1
0
 public void MoneyOffDiscountStrategyThrowsOnLowDiscount(
     Product p,
     decimal discount,
     MoneyOffDiscountStrategy sut)
 {
     if (Math.Abs(discount) != 0)
     {
         discount = -discount;
     }
     Assert.Throws <InvalidDiscountException>(() => sut.DiscountProduct(p, discount));
 }
예제 #2
0
 public void MoneyOffDiscountStrategyThrowsOnHighDiscount(
     Product p,
     decimal discount,
     MoneyOffDiscountStrategy sut)
 {
     while (discount < p.Price)
     {
         discount = discount + Math.Abs(discount);
     }
     Assert.Throws <InvalidDiscountException>(() => sut.DiscountProduct(p, discount));
 }
예제 #3
0
        public void MoneyOffDiscountStrategyCalculationIsCorrect(
            Product p,
            decimal discount,
            MoneyOffDiscountStrategy sut)
        {
            if (discount > p.Price)
            {
                discount = discount - (discount - 1);
            }
            var actual = sut.DiscountProduct(p, discount);

            Assert.Equal(p.Price - discount, actual);
        }