Пример #1
0
        // 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"
                });
            });
        }
Пример #2
0
        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));
        }
Пример #3
0
        internal void PackageTariffProductSetUp()
        {
            var calculationSettings = new TariffCalculationSettings();

            _product = _productFactory.Create(calculationSettings, TariffType.Package).FirstOrDefault();
        }