public void GetTaxAmt()
        {
            var taxProvider = new ProgressiveTaxCalculator();

            taxProvider.AddTaxRate(10, 10.00m);
            taxProvider.AddTaxRate(5, 100.00m);
            taxProvider.AddTaxRate(1, 999999999.99m);

            (decimal, decimal)[] testData =
Esempio n. 2
0
        public void Given_AnnumIncome(double annualIncome, double expectedTax)
        {
            //----------Setup---------------------------
            var progressiveTaxCalculator = new ProgressiveTaxCalculator(new Mock <IIncomeValidator>().Object);
            //--------Execute---------------------------
            var tax = progressiveTaxCalculator.Calculate(annualIncome);

            //--------Assert----------------------------
            Assert.AreEqual(expectedTax, tax);
        }
Esempio n. 3
0
        public void Given_Calculate_Should_Call_IncomeValidator_Validate()
        {
            //----------Setup---------------------------
            var mockValidator = new Mock <IIncomeValidator>();

            mockValidator.Setup(m => m.Validate(It.IsAny <double>()));
            var progressiveTaxCalculator = new ProgressiveTaxCalculator(mockValidator.Object);

            //--------Execute---------------------------
            progressiveTaxCalculator.Calculate(-12547d);
            //--------Assert----------------------------
            mockValidator.Verify(m => m.Validate(-12547d), Times.Once);
        }
        public async Task CalculateProgressiveTaxRate_WhenValidRequest_ShouldCalculateCorrectly(decimal annualIncome, decimal expectedTaxRate)
        {
            // Arrange
            var db = Db();

            db.ProgressiveRate.AddRange(SeedValues.GetProgressiveRateSeedValues());
            db.SaveChanges();
            var taxCalculator = new ProgressiveTaxCalculator(new TaxQueryService(db));

            // Act
            var taxAmount = await taxCalculator.CalculateTaxAmountAsync(annualIncome);

            // Assert
            taxAmount.ShouldBe(expectedTaxRate);
        }
Esempio n. 5
0
        public void ShouldCalculateAmountForAllTaxBrackets()
        {
            var calculator = new ProgressiveTaxCalculator(new List <IHandleProgressiveTaxBracket>
            {
                new Handle10PercentTaxBracket(),
                new Handle15PercentTaxBracket(),
                new Handle25PercentTaxBracket(),
                new Handle28PercentTaxBracket(),
                new Handle33PercentTaxBracket(),
                new Handle35PercentTaxBracket()
            });

            var result = calculator.CalulateTax(372952m);

            Assert.AreEqual(108215.34m, result);
        }
Esempio n. 6
0
 public void Setup()
 {
     progressiveTax = new ProgressiveTaxCalculator();
 }
Esempio n. 7
0
 public void SetUp()
 {
     _repository = new Mock <ITaxRateSettingRepository <ProgressiveTaxRateSetting> >();
     _calculator = new ProgressiveTaxCalculator(_repository.Object);
 }