Exemple #1
0
 /// <summary>
 /// Ensures the database's default data has been initialised
 /// </summary>
 /// <param name="serviceProvider">Configuration options</param>
 public static void Create(IServiceProvider serviceProvider)
 {
     using (WeatherTestContext weatherDb = new WeatherTestContext(serviceProvider.GetRequiredService <DbContextOptions <WeatherTestContext> >()))
     {
         Create(weatherDb);
     }
 }
        public HomeControllerTests()
        {
            DbContextOptionsBuilder <WeatherTestContext> optionsBuilder = new DbContextOptionsBuilder <WeatherTestContext>();

            optionsBuilder.UseInMemoryDatabase();
            _weatherTestDb = new WeatherTestContext(optionsBuilder.Options);

            DefaultData.Create(_weatherTestDb);

            _homeController = new HomeController(_weatherTestDb);

            _celsius    = WeatherTestDb.TemperatureUom.First(i => i.Title == DefaultData.CelsiusTitle);
            _fahrenheit = WeatherTestDb.TemperatureUom.First(i => i.Title == DefaultData.FahrenheitTitle);

            _kph = WeatherTestDb.WindSpeedUom.First(i => i.Title == DefaultData.KPHTitle);
            _mph = WeatherTestDb.WindSpeedUom.First(i => i.Title == DefaultData.MPHTitle);
        }
Exemple #3
0
        /// <summary>
        /// Ensures the database's default data has been initialised
        /// </summary>
        /// <param name="weatherDb">The database to be populated</param>
        public static void Create(WeatherTestContext weatherDb)
        {
            if (weatherDb.TemperatureConversion.Any() ||
                weatherDb.TemperatureUom.Any() ||
                weatherDb.WeatherService.Any() ||
                weatherDb.WindSpeedConversion.Any() ||
                weatherDb.WindSpeedUom.Any())
            {
                return;
            }

            TemperatureUom celsius = new TemperatureUom()
            {
                Title = CelsiusTitle
            };
            TemperatureUom fahrenheit = new TemperatureUom()
            {
                Title = FahrenheitTitle
            };

            weatherDb.TemperatureUom.AddRange(celsius, fahrenheit);

            weatherDb.TemperatureConversion.Add(new TemperatureConversion()
            {
                FromTemperatureUom = celsius, ToTemperatureUom = fahrenheit, Formula = "{value}*(9/5)+32"
            });
            weatherDb.TemperatureConversion.Add(new TemperatureConversion()
            {
                FromTemperatureUom = fahrenheit, ToTemperatureUom = celsius, Formula = "({value}-32)*(5/9)"
            });

            WindSpeedUom mph = new WindSpeedUom()
            {
                Title = "MPH"
            };
            WindSpeedUom kph = new WindSpeedUom()
            {
                Title = "KPH"
            };

            weatherDb.WindSpeedUom.AddRange(mph, kph);

            weatherDb.WindSpeedConversion.Add(new WindSpeedConversion()
            {
                FromWindSpeedUom = mph, ToWindSpeedUom = kph, Formula = "{value}*1.6"
            });
            weatherDb.WindSpeedConversion.Add(new WindSpeedConversion()
            {
                FromWindSpeedUom = kph, ToWindSpeedUom = mph, Formula = "{value}/1.6"
            });

            WeatherService accu = new WeatherService()
            {
                Title           = "AccuWeather",
                ServiceAddress  = "http://localhost:60368/{location}",
                TemperaturePath = "temperatureFahrenheit",
                TemperatureUom  = fahrenheit,
                WindSpeedPath   = "windSpeedMph",
                WindSpeedUom    = mph
            };
            WeatherService bbc = new WeatherService()
            {
                Title           = "BBC",
                ServiceAddress  = "http://localhost:60350/Weather/{location}",
                TemperaturePath = "temperatureCelsius",
                TemperatureUom  = celsius,
                WindSpeedPath   = "windSpeedKph",
                WindSpeedUom    = kph
            };

            weatherDb.WeatherService.AddRange(accu, bbc);
            weatherDb.SaveChanges();
        }
Exemple #4
0
        /// <summary>
        /// Creates the additional demo data for the test
        /// </summary>
        /// <param name="serviceProvider">Configuration options</param>
        public static void CreateDemoData(WeatherTestContext weatherDb)
        {
            if (weatherDb.WeatherService.Any(i => i.Title == "Yahoo"))
            {
                return;
            }

            TemperatureUom kelvin = new TemperatureUom()
            {
                Title = "Kelvin"
            };
            TemperatureUom celsius    = weatherDb.TemperatureUom.First(i => i.Title == "Celsius");
            TemperatureUom fahrenheit = weatherDb.TemperatureUom.First(i => i.Title == "Fahrenheit");

            weatherDb.TemperatureUom.Add(kelvin);

            weatherDb.TemperatureConversion.Add(new TemperatureConversion()
            {
                FromTemperatureUom = kelvin, ToTemperatureUom = celsius, Formula = "({value}-273.15)"
            });
            weatherDb.TemperatureConversion.Add(new TemperatureConversion()
            {
                FromTemperatureUom = kelvin, ToTemperatureUom = fahrenheit, Formula = "({value}*(9/5)-459.67)"
            });
            weatherDb.TemperatureConversion.Add(new TemperatureConversion()
            {
                FromTemperatureUom = celsius, ToTemperatureUom = kelvin, Formula = "({value}+273.15)"
            });
            weatherDb.TemperatureConversion.Add(new TemperatureConversion()
            {
                FromTemperatureUom = fahrenheit, ToTemperatureUom = kelvin, Formula = "(({value} + 459.67)*(5/9))"
            });

            WindSpeedUom feetSecond = new WindSpeedUom()
            {
                Title = "ft/s"
            };
            WindSpeedUom mph = weatherDb.WindSpeedUom.First(i => i.Title == "MPH");
            WindSpeedUom kph = weatherDb.WindSpeedUom.First(i => i.Title == "KPH");

            weatherDb.WindSpeedUom.Add(feetSecond);

            weatherDb.WindSpeedConversion.Add(new WindSpeedConversion()
            {
                FromWindSpeedUom = feetSecond, ToWindSpeedUom = kph, Formula = "({value}*1.097)"
            });
            weatherDb.WindSpeedConversion.Add(new WindSpeedConversion()
            {
                FromWindSpeedUom = feetSecond, ToWindSpeedUom = mph, Formula = "({value}*0.682)"
            });
            weatherDb.WindSpeedConversion.Add(new WindSpeedConversion()
            {
                FromWindSpeedUom = kph, ToWindSpeedUom = feetSecond, Formula = "({value}/1.097)"
            });
            weatherDb.WindSpeedConversion.Add(new WindSpeedConversion()
            {
                FromWindSpeedUom = mph, ToWindSpeedUom = feetSecond, Formula = "({value}/0.682)"
            });

            WeatherService yahoo = new WeatherService()
            {
                Title           = "Yahoo",
                ServiceAddress  = "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22{location}%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys",
                TemperaturePath = "query.results.channel.item.condition.temp",
                TemperatureUom  = fahrenheit,
                WindSpeedPath   = "query.results.channel.wind.speed",
                WindSpeedUom    = mph
            };

            weatherDb.WeatherService.Add(yahoo);
            weatherDb.SaveChanges();
        }
 public HomeController(WeatherTestContext context)
 {
     _weatherTestDb = context;
 }