示例#1
0
        public void InitAndValidateLimits_IfFoodLimitsAreNotSet_ThrowsException()
        {
            //Prepare test
            var limits = new DietLimits();

            //Do test
            var exception = Assert.Throws <ArgumentException>(() => new DietParametersService(limits));

            Assert.Equal("All Food limits should be defined in appsettings.json file", exception.Message);
        }
示例#2
0
        public DietParametersServiceTests()
        {
            var limits = new DietLimits
            {
                CarbohydratesLimits = new Limits {
                    Min = 100, Max = 300
                },
                ProteinsLimits = new Limits {
                    Min = 100, Max = 200
                },
                FatsLimits = new Limits {
                    Min = 100, Max = 200
                }
            };

            _dietService = new DietParametersService(limits);
        }
        public static void AddDietAssistantServices(this IServiceCollection services, IConfiguration configuration)
        {
            services.AddDbContext <DietAssistantContext>(options => options.UseSqlServer(configuration.GetConnectionString("dbConnection"), sqlOptions =>
            {
                sqlOptions.EnableRetryOnFailure();
                sqlOptions.ExecutionStrategy(deps => new SqlServerRetryingExecutionStrategy(
                                                 dependencies: deps,
                                                 maxRetryCount: 5,
                                                 maxRetryDelay: TimeSpan.FromSeconds(30),
                                                 errorNumbersToAdd: new int[] { 10060, 233, 40613 }
                                                 )
                                             );
            }));

            services.AddSingleton <IDietService, DietParametersService>(p =>
            {
                var limits = new DietLimits();
                configuration.GetSection("FoodLimits").Bind(limits);

                return(new DietParametersService(limits));
            });

            services.AddAutoMapper(typeof(UserService).Assembly);

            services.AddScoped <IUserRepository, UserRepository>();
            services.AddScoped <IUserService, UserService>();

            services.AddScoped <IRepository <ConsumedDish>, ConsumedDishRepository>();
            services.AddScoped <IConsumedDishService, ConsumedDishService>();

            services.AddScoped <IRepository <DailyReport>, DailyReportRepository>();
            services.AddScoped <IReportService, ReportService>();

            services.AddScoped <IAdminReportService, AdminReportService>();

            services.AddTransient <IParametersCalculationService, ParametersCalculationService>();
        }
示例#4
0
 //Constructor for test purposes
 public DietParametersService(DietLimits dietLimits)
 {
     _dietLimits = dietLimits;
     ValidateLimits();
 }