public void Given_AnnumIncome_63900_ShouldReturn_PercentageBasedValue() { //----------Setup--------------------------- const double annualIncome = 63900d; var flatRateTaxCalculator = new FlatRateTaxCalculator(new Mock <IIncomeValidator>().Object); //--------Execute--------------------------- var tax = flatRateTaxCalculator.Calculate(annualIncome); //--------Assert---------------------------- Assert.AreEqual(11182.50d, tax); }
public void Given_AnnumIncome_100000_ShouldReturn_17500() { //----------Setup--------------------------- const double annualIncome = 100000d; var flatRateTaxCalculator = new FlatRateTaxCalculator(new Mock <IIncomeValidator>().Object); //--------Execute--------------------------- var tax = flatRateTaxCalculator.Calculate(annualIncome); //--------Assert---------------------------- Assert.AreEqual(17500d, tax); }
public void Given_Calculate_Should_Call_IncomeValidator_Validate() { //----------Setup--------------------------- var mockValidator = new Mock <IIncomeValidator>(); mockValidator.Setup(m => m.Validate(It.IsAny <double>())); var flatRateTaxCalculator = new FlatRateTaxCalculator(mockValidator.Object); //--------Execute--------------------------- flatRateTaxCalculator.Calculate(-12547d); //--------Assert---------------------------- mockValidator.Verify(m => m.Validate(-12547d), Times.Once); }
public void Given_GetTaxCalculator_When_Id_Does_Exist_Should_ReturnTaxCalculator() { //------------Setup--------------------------------- var taxCalculator = new FlatRateTaxCalculator(new Mock <IIncomeValidator>().Object); const string identifier = "Flat Rate"; var taxResolver = new PostalCodeTaxResolver(new Mock <IIncomeValidator>().Object); taxResolver.RegisterTaxCalculator(identifier, taxCalculator); //------------Execute-------------------------------- var returnedTaxCalculator = taxResolver.GetTaxCalculator(identifier); //------------Assert-------------------------------- Assert.AreEqual(taxCalculator, returnedTaxCalculator); }
public void Given_RegisterTaxCalculator_When_Id_DoesNot_Exist_Should_AddTaxCalculator() { //------------Setup--------------------------------- var taxCalculator = new FlatRateTaxCalculator(new Mock <IIncomeValidator>().Object); const string identifier = "Flat Rate"; var taxResolver = new PostalCodeTaxResolver(new Mock <IIncomeValidator>().Object); //------------Execute-------------------------------- taxResolver.RegisterTaxCalculator(identifier, taxCalculator); //------------Assert-------------------------------- var numberOfTaxResolvers = taxResolver.Count(); Assert.AreEqual(5, numberOfTaxResolvers); }
public async Task CalculateFlatRateTaxRate_WhenValidRequest_ShouldCalculateCorrectly(decimal annualIncome, decimal expectedTaxRate) { // Arrange var db = Db(); db.FlatRate.AddRange(SeedValues.GetFlatRatesSeedValues()); db.SaveChanges(); var taxCalculator = new FlatRateTaxCalculator(new TaxQueryService(db)); // Act var taxAmount = await taxCalculator.CalculateTaxAmountAsync(annualIncome); // Assert taxAmount.ShouldBe(expectedTaxRate); }
public void Given_GetTaxCalculator_When_Id_DoesNot_Exist_Should_ThrowException() { //------------Setup--------------------------------- var taxCalculator = new FlatRateTaxCalculator(new Mock <IIncomeValidator>().Object); const string identifier = "Flat Rate"; var taxResolver = new PostalCodeTaxResolver(new Mock <IIncomeValidator>().Object); taxResolver.RegisterTaxCalculator(identifier, taxCalculator); //------------Execute-------------------------------- try { taxResolver.GetTaxCalculator("SomeRandomTaxCalculator"); } catch (System.Exception e) { //------------Assert-------------------------------- Assert.AreEqual("No Tax Calculator found", e.Message); } }
public void Setup() { flatRateTax = new FlatRateTaxCalculator(); }