Example #1
0
        public void WeatherViewModelsUpdate()
        {
            // Arrange
            var wm = new MockWeatherModel();
            var weekVm = new WeatherThisWeekViewModel();
            var dayVm = new WeatherTodayViewModel();

            mockSunnyWeather(wm);
            wm.Update();
            weekVm.Initialize(wm);
            dayVm.Initialize(wm);

            // Act
            mockRainyWeather(wm);
            wm.Update();

            // Assert that viewmodels updated correctly to the "rainyWeather" values
            Assert.AreEqual("Rainy", weekVm.CurrentWeather.Conditions);
            Assert.AreEqual(20, weekVm.CurrentWeather.Rainfall);
            Assert.AreEqual(5, weekVm.CurrentWeather.Snowfall);
            Assert.AreEqual(15, weekVm.CurrentWeather.Temperature);

            Assert.AreEqual("Rainy", weekVm.Forecast.First().Conditions);
            Assert.AreEqual("Friday 27", weekVm.Forecast.First().Date);
            Assert.AreEqual(16, weekVm.Forecast.First().TemperatureHigh);
            Assert.AreEqual(14, weekVm.Forecast.First().TemperatureLow);

            Assert.AreEqual("Rainy", dayVm.CurrentWeather.Conditions);
            Assert.AreEqual(20, dayVm.CurrentWeather.Rainfall);
            Assert.AreEqual(5, dayVm.CurrentWeather.Snowfall);
            Assert.AreEqual(15, dayVm.CurrentWeather.Temperature);

            Assert.AreEqual("7:31", dayVm.Sunrise);
            Assert.AreEqual("5:29", dayVm.Sunset);

            Assert.AreEqual("Rainy", dayVm.Forecast.First().Conditions);
            Assert.AreEqual(20, dayVm.Forecast.First().Rainfall);
            Assert.AreEqual(5, dayVm.Forecast.First().Snowfall);
            Assert.AreEqual(16, dayVm.Forecast.First().Temperature);
            Assert.AreEqual(1, dayVm.Forecast.First().Time); // 1pm
        }
Example #2
0
        public void WeatherCorrectlyIdentifiesOutcomingRain()
        {
            // Arrange
            var wm = new MockWeatherModel();
            mockRainyThenSunnyWeather(wm);
            wm.Update();

            var dayVm = new WeatherTodayViewModel();
            dayVm.Initialize(wm);

            Assert.AreEqual("Rainy", dayVm.CurrentWeather.Conditions);
            Assert.AreEqual(20, dayVm.CurrentWeather.Rainfall);
            Assert.AreEqual(5, dayVm.CurrentWeather.Snowfall);
            Assert.AreEqual(15, dayVm.CurrentWeather.Temperature);

            Assert.AreEqual("Sunny", dayVm.Forecast.First().Conditions);
            Assert.AreEqual(0, dayVm.Forecast.First().Rainfall);
            Assert.AreEqual(0, dayVm.Forecast.First().Snowfall);
            Assert.AreEqual(26, dayVm.Forecast.First().Temperature);

            Assert.AreEqual("Rain ends at 1 pm", dayVm.RainForecast);
        }