// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddTransient <AbstractValidator <ITariffCalculationSettings>, TariffCalculationSettingsValidator>(); services.AddTransient <ITariffCalculationSettings>(s => { var r = new TariffCalculationSettings ( Convert.ToInt32(Configuration["TariffCalculation:ThresholdConsumption"]), Convert.ToInt32(Configuration["TariffCalculation:BaseCost"]), Convert.ToDouble(Configuration["TariffCalculation:AdditionalConsumptionCosts"]), Convert.ToInt32(Configuration["TariffCalculation:BaseMonthCost"]), Convert.ToInt32(Configuration["TariffCalculation:MonthsInYear"]), Convert.ToDouble(Configuration["TariffCalculation:ConsumptionCosts"]) ); return(r); }); services.AddTransient <IProductFactory, ElectricityProductFactory>(); services.AddTransient <IProductService, ProductService>(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" }); }); }
public void Calculate_IfBaseTariff_BaseMonthCostCloseToMaxInt_ThrowOverflowException(int baseCost, int consumption) { var validator = new TariffCalculationSettingsValidator(); var settings = new TariffCalculationSettings(baseMonthCost: baseCost); _productFactory = new ElectricityProductFactory(validator); _product = _productFactory.Create(settings, TariffType.Base).FirstOrDefault(); Assert.Throws <OverflowException>(() => _product.Calculate(consumption)); }
internal void PackageTariffProductSetUp() { var calculationSettings = new TariffCalculationSettings(); _product = _productFactory.Create(calculationSettings, TariffType.Package).FirstOrDefault(); }