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); }
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); }
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); }
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); }