public static void GifAidAmount_FractionedToMoreThanTwoDigits_Expect_RoundedValue(decimal donationAmount, decimal expected)
        {
            var taxRate = new Mock <ITaxRateStore>();

            taxRate.Setup(m => m.Get()).Returns(20m);
            IGiftAidCalculatorService calc = new GiftAidCalculatorService(taxRate.Object);
            decimal giftAidAmount          = calc.GiftAidAmount(donationAmount);

            Assert.AreEqual(expected, giftAidAmount);
        }
        public static void GiftAidAmount_ChangingTaxRate_Expect_AmountChangeAccordingly(decimal taxRate, decimal donationAmount)
        {
            var taStore = new Mock <ITaxRateStore>();

            taStore.Setup(x => x.Get()).Returns(taxRate);
            IGiftAidCalculatorService calc = new GiftAidCalculatorService(taStore.Object);
            decimal giftAidAmount          = calc.GiftAidAmount(donationAmount);
            decimal expected = expectedGiftAidAmount(donationAmount, taxRate);

            Assert.AreEqual(expected, giftAidAmount);
        }
        public static void GiftAidAmount_VerifyInjectedTaxRateStoreIsCalled_Expect_AtLeastOnce([Values(10, 100)] decimal donationAmount)
        {
            decimal arbitraryTaxRate = 20m;

            var spyTaStore = new Mock <ITaxRateStore>();

            spyTaStore.Setup(x => x.Get()).Returns(arbitraryTaxRate);
            IGiftAidCalculatorService calc = new GiftAidCalculatorService(spyTaStore.Object);
            decimal giftAidAmount          = calc.GiftAidAmount(donationAmount);

            spyTaStore.Verify(m => m.Get(), Times.AtLeastOnce());
        }
        public static void GifAidAmount_TaxRate100Donate100_Expect_10000AsGiftAid()
        {
            decimal gaTaxRate      = 100m;
            decimal donationAmount = 100m;
            decimal expected       = 10000m;
            var     taxRate        = new Mock <ITaxRateStore>();

            taxRate.Setup(m => m.Get()).Returns(gaTaxRate);
            IGiftAidCalculatorService calc = new GiftAidCalculatorService(taxRate.Object);

            decimal giftAidAmount = calc.GiftAidAmount(donationAmount);

            Assert.AreEqual(expected, giftAidAmount);
        }
        public static void GiftAidAmount_TaxRateIsDefault_Expect_CharityMake20PercentExtra([Values(10, 100)] decimal donationAmount)
        {
            decimal inputTaxRate = 20m;

            var taStore = new Mock <ITaxRateStore>();

            taStore.Setup(x => x.Get()).Returns(inputTaxRate);
            IGiftAidCalculatorService calc = new GiftAidCalculatorService(taStore.Object);
            decimal giftAidAmount          = calc.GiftAidAmount(donationAmount);

            decimal expected = expectedGiftAidAmount(donationAmount, inputTaxRate);

            Assert.AreEqual(expected, giftAidAmount);
        }
Esempio n. 6
0
        public static void GiftAidAmount_DonatingForNoSupplementEvent_Except_onlyGiftAidAmount()
        {
            decimal donationAmount = 100m;

            var otherEvent = new GiftAidCalculator.Service.NoSupplementEvent();
            var taxRate    = new Mock <ITaxRateStore>();

            taxRate.Setup(m => m.Get()).Returns(20m);
            var calculator = new GiftAidCalculatorService(taxRate.Object);

            calculator.SetEventType(otherEvent);
            var amount = calculator.GiftAidAmount(donationAmount);

            var except = expectedGiftAidAmount(donationAmount, TaxRateStore.CurrentRate.Value, 0);

            Assert.AreEqual(except, amount);
        }
Esempio n. 7
0
        public static void GiftAidAmount_DonatingForSwimmingEvent_Except_3PercentSupplimentAdded()
        {
            decimal donationAmount         = 100m;
            decimal swimmingSupplementRate = 3m;
            decimal taxRate = 0m;

            var trStore = new Mock <ITaxRateStore>();

            trStore.Setup(m => m.Get()).Returns(taxRate);
            var swimmingEvent = new GiftAidCalculator.Service.SwimmingEvent(swimmingSupplementRate);
            var calculator    = new GiftAidCalculatorService(trStore.Object);

            calculator.SetEventType(swimmingEvent);
            var amount = calculator.GiftAidAmount(donationAmount);

            var except = expectedGiftAidAmount(donationAmount, suppliment: swimmingSupplementRate);

            Assert.AreEqual(except, amount);
        }
Esempio n. 8
0
        public static void GiftAidAmount_DonatingForRunningEvent_Except_5PercentSupplimentAdded()
        {
            decimal inputDonationAmount = 100m;
            decimal inputSupplimnet     = 5m;

            var trStore = new Mock <ITaxRateStore>();

            trStore.Setup(m => m.Get()).Returns(0);

            var runningEvent = new GiftAidCalculator.Service.RunningEvent(inputSupplimnet);
            var calculator   = new GiftAidCalculatorService(trStore.Object);

            calculator.SetEventType(runningEvent);
            var amount = calculator.GiftAidAmount(inputDonationAmount);

            var except = expectedGiftAidAmount(inputDonationAmount, inputSupplimnet);

            Assert.AreEqual(except, amount);
        }