private static void Main(string[] args) { decimal taxRate = 0; decimal donationAmount = 0; int eventCode = 0; ITaxRateSetting setRate = new TaxRateSetting(); Console.WriteLine("\n\t\tPlease enter the tax rate:"); if (decimal.TryParse(Console.ReadLine(), out taxRate)) { setRate.SetTaxRate = taxRate; Console.WriteLine("\n\t\t Please Enter donation amount:"); if (decimal.TryParse(Console.ReadLine(), out donationAmount)) { var calculateTax = new TaxRateCalculator(setRate); decimal giftAid = calculateTax.GiftAidCalculation(donationAmount); Console.WriteLine("\n\t\t Gift aid calculated at the rate of " + taxRate + " is:" + decimal.Round(giftAid, 2) + "\n"); Console.WriteLine( "\n Select Event Supplement Code: \n 1 - 5% supplement added for donations to Running events. \n 2 - 3% supplement added for donations to Swimming events. \n 3 - for other events."); if (int.TryParse(Console.ReadLine(), out eventCode)) { Console.WriteLine("\n The calculated gift amount is: " + (donationAmount + giftAid + decimal.Round(EventTypeCalculations.AddEventSupplement(eventCode, donationAmount), 2)) + "\n"); Console.WriteLine("Press any key to exit."); Console.ReadLine(); } else { Console.WriteLine("Invalid number entered. Please enter number in decimal format."); Console.ReadLine(); } } else { Console.WriteLine("Invalid number entered. Please enter number in decimal format."); Console.ReadLine(); } } else { Console.WriteLine("Invalid number entered. Please enter number in decimal format."); Console.ReadLine(); } }
public void Giftaid_calculation_by_taxrate() { //Arrange const decimal taxRate = 20; const decimal donationAmount = 10; const decimal expectedResult = 2.0m; var mockConfigRepositry = new Mock <ITaxRateSetting>(); mockConfigRepositry.Setup(x => x.SetTaxRate).Returns(taxRate); ITaxRateCalculation taxRateSetting = new TaxRateCalculator(mockConfigRepositry.Object); //Act decimal actualResult = taxRateSetting.GiftAidCalculation(donationAmount); //Assert Assert.AreEqual(expectedResult, actualResult); Console.WriteLine("Gift aid at a tax rate of " + taxRate + " is: " + actualResult); }
public void Giftaid_calculation_by_swiming_supplement() { //Arrange const decimal taxRate = 20; const decimal donationAmount = 10; const decimal expectedResult = 12.30m; const int eventCode = 2; var mockConfigRepositry = new Mock <ITaxRateSetting>(); mockConfigRepositry.Setup(x => x.SetTaxRate).Returns(taxRate); ITaxRateCalculation taxRateSetting = new TaxRateCalculator(mockConfigRepositry.Object); //Act decimal actualResult = taxRateSetting.GiftAidCalculation(donationAmount); decimal actual = donationAmount + actualResult + decimal.Round(EventTypeCalculations.AddEventSupplement(eventCode, donationAmount), 2); //Assert Assert.AreEqual(expectedResult, actual); Console.WriteLine(actual); }
public void Round_to_two_decimal() { //Arrange const decimal expectedValue = 12m; const decimal taxRate = 20m; const decimal donationAmount = 10m; var mockConfigRepositry = new Mock <ITaxRateSetting>(); mockConfigRepositry.Setup(x => x.SetTaxRate).Returns(taxRate); ITaxRateCalculation taxRateSetting = new TaxRateCalculator(mockConfigRepositry.Object); decimal actual = taxRateSetting.GiftAidCalculation(donationAmount); //Act decimal actualValue = decimal.Round(donationAmount + actual, 2); //Assert Assert.AreEqual(actualValue, expectedValue); Console.WriteLine("Actual donation : [ " + donationAmount + " ] after adding gift aid and rounding to 2 decimal : " + actualValue); }