public static void Seed(this DataContext dataContext) { _dataContext = dataContext; if (!_dataContext.PostalCodeCalculationTypeMap.Any()) { _dataContext.PostalCodeCalculationTypeMap.AddRange(SeedValues.GetPostalCodeCalculationTypeMap()); } if (!_dataContext.FlatRate.Any()) { _dataContext.FlatRate.AddRange(SeedValues.GetFlatRatesSeedValues()); } if (!_dataContext.FlatValue.Any()) { _dataContext.FlatValue.AddRange(SeedValues.GetFlatValueRatesSeedValues()); } if (!_dataContext.ProgressiveRate.Any()) { _dataContext.ProgressiveRate.AddRange(SeedValues.GetProgressiveRateSeedValues()); } _dataContext.SaveChanges(); }
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 async Task GetTaxCalculationType_WhenValidPostalCode_ShouldReturnCorrectCalculationType(string postalCode, TaxType expectedTaxType) { // Arrange var db = Db(); db.PostalCodeCalculationTypeMap.AddRange(SeedValues.GetPostalCodeCalculationTypeMap()); db.SaveChanges(); var queryService = new TaxQueryService(db); // Act var taxCalcType = await queryService.GetTaxCalculationTypeByPostalCodeAsync(postalCode); // Assert taxCalcType.ShouldBe(expectedTaxType); }