Пример #1
0
        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();
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }