public void Given_AnnumIncome_LessThan_200000_ShouldReturn_5PercentOfValue()
        {
            //----------Setup---------------------------
            const double annualIncome           = 100000d;
            var          flatValueTaxCalculator = new FlatValueTaxCalculator(new Mock <IIncomeValidator>().Object);
            //--------Execute---------------------------
            var tax = flatValueTaxCalculator.Calculate(annualIncome);

            //--------Assert----------------------------
            Assert.AreEqual(5000d, tax);
        }
        public void Given_Calculate_Should_Call_IncomeValidator_Validate()
        {
            //----------Setup---------------------------
            var mockValidator = new Mock <IIncomeValidator>();

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

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

            db.FlatValue.AddRange(SeedValues.GetFlatValueRatesSeedValues());
            db.SaveChanges();
            var taxCalculator = new FlatValueTaxCalculator(new TaxQueryService(db));

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

            // Assert
            taxAmount.ShouldBe(expectedTaxRate);
        }
Esempio n. 4
0
 public void Setup()
 {
     flatValueTax = new FlatValueTaxCalculator();
 }