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); }
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); }
public void Setup() { flatValueTax = new FlatValueTaxCalculator(); }