示例#1
0
 public static void Clear(this AirlyContext context)
 {
     context.Measurements.RemoveRange(context.Measurements);
     context.Forecasts.RemoveRange(context.Forecasts);
     context.ForecastErrors.RemoveRange(context.ForecastErrors);
     context.InstallationInfos.RemoveRange(context.InstallationInfos);
     context.SaveChanges();
 }
示例#2
0
        public AddAsyncTest(RepositoryFixture fixture)
        {
            _context         = fixture.Context;
            _unitOfWork      = fixture.UnitOfWork;
            _startDate       = fixture.StartDate;
            _installationIds = fixture.InstallationIds;

            _context.Clear();
        }
示例#3
0
        public IndexTest(RepositoryFixture fixture)
        {
            _context         = fixture.Context;
            _startDate       = fixture.StartDate;
            _installationIds = fixture.InstallationIds;

            controller = new ForecastErrorsController(fixture.UnitOfWork);
            _context.Clear();
        }
        public SelectDataToProcessingTest(RepositoryFixture fixture)
        {
            _context         = fixture.Context;
            _unitOfWork      = fixture.UnitOfWork;
            _startDate       = fixture.StartDate;
            _installationIds = fixture.InstallationIds;

            _context.Clear();
        }
示例#5
0
        public DownloadInstallationInfosTest(RepositoryFixture fixture)
        {
            _unitOfWork      = fixture.UnitOfWork;
            _context         = fixture.Context;
            _installationIds = fixture.InstallationIds;

            _context.Clear();

            _downloaderMock = new Mock <IAirQualityDataDownloader <Installation> >();
        }
        public SaveAllAirQualityDataTest(RepositoryFixture fixture)
        {
            _context         = fixture.Context;
            _startDate       = fixture.StartDate;
            _installationIds = fixture.InstallationIds;

            _programController = new ProgramController(fixture.UnitOfWork);

            _context.Clear();
        }
示例#7
0
        public GetLastDateTest(RepositoryFixture fixture)
        {
            _context          = fixture.Context;
            _unitOfWork       = fixture.UnitOfWork;
            _dateTimeMinValue = fixture.DateTimeMinValue;
            _startDate        = fixture.StartDate;
            _installationIds  = fixture.InstallationIds;

            _context.Clear();
        }
示例#8
0
        public static void Seed(
            this AirlyContext context, short numberOfDays)
        {
            const short numberOfElementsInDay = 24;

            context.AddAllElementsToDatabase(
                _installationIds, _startDate, numberOfDays, numberOfElementsInDay);

            context.SaveChanges();
        }
示例#9
0
        public static void AddHourlyForecastErrorsToDatabase(
            this AirlyContext context,
            short installationId,
            DateTime startDate,
            int numberOfForecastErrors)
        {
            context.ForecastErrors.AddRange(GenerateHourlyForecastErrors(
                                                installationId, startDate, numberOfForecastErrors));

            context.SaveChanges();
        }
示例#10
0
        public static void AddMeasurementsToDatabase(
            this AirlyContext context,
            short installationId,
            DateTime startDate,
            int numberOfMeasurements)
        {
            context.Measurements.AddRange(GenerateMeasurements(
                                              installationId, startDate, numberOfMeasurements));

            context.SaveChanges();
        }
示例#11
0
        public static void AddTotalForecastErrorsToDatabase(
            this AirlyContext context,
            List <short> installationIds,
            DateTime startDate,
            short numberOfDays)
        {
            context.ForecastErrors.AddRange(GenerateTotalForecastErrors(
                                                installationIds, startDate, numberOfDays));

            context.SaveChanges();
        }
示例#12
0
        public static void AddForecastsToDatabase(
            this AirlyContext context,
            short installationId,
            DateTime startDate,
            short numberOfDays,
            short numberOfForecastsInDay)
        {
            context.Forecasts.AddRange(GenerateForecasts(
                                           installationId, startDate, numberOfDays, numberOfForecastsInDay));

            context.SaveChanges();
        }
示例#13
0
        public static void AddDailyForecastErrorsToDatabase(
            this AirlyContext context,
            short installationId,
            DateTime startDate,
            short numberOfDays,
            short durationInHours = 24)
        {
            context.ForecastErrors.AddRange(GenerateDailyForecastErrors(
                                                installationId, startDate, numberOfDays, durationInHours));

            context.SaveChanges();
        }
        public DownloadAllAirQualityDataTest(RepositoryFixture fixture)
        {
            _unitOfWork      = fixture.UnitOfWork;
            _context         = fixture.Context;
            _installationIds = fixture.InstallationIds;

            _minNumberOfMeasurements = fixture.Config.GetValue <short>(
                "AppSettings:AirlyApi:MinNumberOfMeasurements");

            _context.Clear();

            _downloaderMock = new Mock <IAirQualityDataDownloader <Measurements> >();
        }
示例#15
0
        public UpdateTotalForecastErrorsTest(RepositoryFixture fixture)
        {
            _context         = fixture.Context;
            _startDate       = fixture.StartDate;
            _installationIds = fixture.InstallationIds;

            programController = new ProgramController(
                fixture.UnitOfWork,
                forecastErrorsCalculator:
                new PlainForecastErrorsCalculator(fixture.Config));

            _context.Clear();
        }
示例#16
0
 public static void AddAllForecastsToDatabase(
     this AirlyContext context,
     List <short> installationIds,
     DateTime startDate,
     short numberOfDays,
     short numberOfForecastsInDay)
 {
     foreach (short installationId in installationIds)
     {
         context.AddForecastsToDatabase(
             installationId, startDate, numberOfDays, numberOfForecastsInDay);
     }
 }
示例#17
0
        public CalculateForecastErrorsTest(RepositoryFixture fixture)
        {
            _config          = fixture.Config;
            _unitOfWork      = fixture.UnitOfWork;
            _context         = fixture.Context;
            _startDate       = fixture.StartDate;
            _installationIds = fixture.InstallationIds;

            _minNumberOfMeasurements = fixture.Config.GetValue <short>(
                "AppSettings:AirlyApi:MinNumberOfMeasurements");

            _forecastErrorsCalculator = new PlainForecastErrorsCalculator(_config);

            _context.Clear();
        }
示例#18
0
        public RepositoryFixture()
        {
            DateTimeMinValue = new DateTime(2000, 1, 1);
            StartDate        = new DateTime(2001, 3, 24, 22, 0, 0, DateTimeKind.Utc);

            var inMemoryDatabaseOptions = new DbContextOptionsBuilder <AirlyContext>()
                                          .UseInMemoryDatabase("AirlyAnalyzerDbForTesting")
                                          .Options;

            Config = ConfigUtilities.GetApplicationConfig();

            InstallationIds = Config
                              .GetSection("AppSettings:AirlyApi:InstallationIds")
                              .Get <List <short> >();

            Context = new AirlyContext(inMemoryDatabaseOptions, Config);

            UnitOfWork = new UnitOfWork(Context);
        }
示例#19
0
        public static void AddAllElementsToDatabase(
            this AirlyContext context,
            List <short> installationIds,
            DateTime startDate,
            short numberOfDays,
            short numberOfElementsInDay)
        {
            var requestDate = startDate.AddDays(numberOfDays)
                              .AddMinutes(RequestMinutesOffset);

            int totalErrorDuration = ((numberOfDays - 1) * 24) + numberOfElementsInDay;

            foreach (short installationId in installationIds)
            {
                context.AddMeasurementsToDatabase(
                    installationId, startDate, numberOfDays, numberOfElementsInDay);

                context.AddForecastsToDatabase(
                    installationId, startDate, numberOfDays, numberOfElementsInDay);

                context.ForecastErrors.AddRange(GenerateHourlyForecastErrors(
                                                    installationId, startDate, numberOfDays, numberOfElementsInDay));

                context.ForecastErrors.AddRange(GenerateDailyForecastErrors(
                                                    installationId, startDate, numberOfDays, numberOfElementsInDay));

                context.ForecastErrors.Add(CreateForecastError(
                                               installationId, ET.Total, startDate, requestDate, totalErrorDuration));
            }

            context.ForecastErrors.Add(CreateForecastError(
                                           _idForAllInstallations,
                                           ET.Total,
                                           startDate,
                                           requestDate,
                                           totalErrorDuration));

            context.SaveChanges();
        }