Пример #1
0
        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();
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        public void GetIncomeTaxTest()
        {
            ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();

            fileMap.ExeConfigFilename = "App.config";
            Configuration config
                = ConfigurationManager.OpenMappedExeConfiguration(fileMap,
                                                                  ConfigurationUserLevel.None);
            TaxRateSection section
                = config.GetSection("taxIncomeSettings") as TaxRateSection;

            var taxCalculator = new TaxRateCalculator(section.TaxRates);

            var result = taxCalculator.GetTaxIncome(60050);

            int tax = (int)Math.Round(result / 12);

            Assert.IsTrue(tax == 922);
        }
        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);
        }
Пример #5
0
        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);
        }