Ejemplo n.º 1
0
 private async void BtnTest_Click(object sender, RoutedEventArgs e)
 {
     ConfigUtil         cu = new ConfigUtil();
     UserConfig         uc = cu.Get();
     WeatherDataBuilder wb = new WeatherDataBuilder();
     WetherData         wd = await wb.Get(uc.UserCityId);
 }
Ejemplo n.º 2
0
        public void SetDate_DateEarlierThan1900_ThrowsException(int year, int month, int day)
        {
            var builder = new WeatherDataBuilder();
            var date    = new DateTime(year, month, day);

            Assert.ThrowsAny <InvalidOperationException>(() => builder.SetDate(date));
        }
Ejemplo n.º 3
0
        public void SetWindSpeed_MilesPerHour_ProperlySetsValue()
        {
            var builder = new WeatherDataBuilder();

            var data = builder.SetWindSpeed(10, WindSpeedUnit.MilesPerHour).Build();

            Assert.Equal(16.09f, data.WindSpeed);
        }
Ejemplo n.º 4
0
        public void SetWindSpeed_MetersPerSecond_ProperlySetsValue()
        {
            var builder = new WeatherDataBuilder();

            var data = builder.SetWindSpeed(10, WindSpeedUnit.MetersPerSecond).Build();

            Assert.Equal(36, data.WindSpeed);
        }
Ejemplo n.º 5
0
        public void SetApparentTemperature_ProperlySetsValue(float input, float expectedValue, TemperatureScale unit)
        {
            var builder = new WeatherDataBuilder();

            builder.SetApparentTemperature(input, unit);
            var data = builder.Build();

            Assert.Equal(expectedValue, data.TemperatureApparent.Value);
        }
Ejemplo n.º 6
0
        public void SetWeatherCode_ProperlySetsValue()
        {
            var builder     = new WeatherDataBuilder();
            var weatherCode = 200;

            builder.SetWeatherCode(weatherCode);
            var data = builder.Build();

            Assert.Equal(weatherCode, data.WeatherCode);
        }
Ejemplo n.º 7
0
        public void SetDate_ProperlySetsValue()
        {
            var builder = new WeatherDataBuilder();
            var date    = new DateTime(2020, 01, 01, 10, 11, 1);

            builder.SetDate(date);
            var data = builder.Build();

            Assert.Equal(date, data.Date);
        }
Ejemplo n.º 8
0
        public void SetChanceOfRain_ProperlySetsValue()
        {
            var builder      = new WeatherDataBuilder();
            var chanceOfRain = 10;

            builder.SetChanceOfRain(chanceOfRain);
            var data = builder.Build();

            Assert.Equal(chanceOfRain, data.ChanceOfRain);
        }
Ejemplo n.º 9
0
        public void SetWindDirection_ProperlySetsValue()
        {
            var builder       = new WeatherDataBuilder();
            var windDirection = 110;

            builder.SetWindDirection(windDirection);
            var data = builder.Build();

            Assert.Equal(windDirection, data.WindDirection);
        }
Ejemplo n.º 10
0
        public void SetPressure_ProperlySetsValue()
        {
            var builder  = new WeatherDataBuilder();
            var pressure = 1010;

            builder.SetPressure(pressure);
            var data = builder.Build();

            Assert.Equal(pressure, data.Pressure);
        }
Ejemplo n.º 11
0
        public void SetHumidity_ProperlySetsValue()
        {
            var builder  = new WeatherDataBuilder();
            var humidity = 56;

            builder.SetHumidity(humidity);
            var data = builder.Build();

            Assert.Equal(humidity, data.Humidity);
        }
Ejemplo n.º 12
0
        public void SetWindSpeed_KilometersPerHour_ProperlySetsValue()
        {
            var builder   = new WeatherDataBuilder();
            var windSpeed = 10;

            builder.SetWindSpeed(windSpeed, WindSpeedUnit.KilometersPerHour);

            var data = builder.Build();

            Assert.Equal(windSpeed, data.WindSpeed);
        }
Ejemplo n.º 13
0
        protected override WeatherData BuildWeatherDataFromDynamicObject(dynamic dynamicObject)
        {
            var builder = new WeatherDataBuilder();

            builder.SetMinTemperature((float)dynamicObject.min_temp, TemperatureScale.Celsius)
            .SetMaxTemperature((float)dynamicObject.max_temp, TemperatureScale.Celsius)
            .SetWeatherCode((int)dynamicObject.weather.code)
            .SetWeatherDescription((string)dynamicObject.weather.description)
            .SetChanceOfRain((int)dynamicObject.pop)
            .SetWindSpeed((float)dynamicObject.wind_spd, WindSpeedUnit.MetersPerSecond)
            .SetPressure((int)dynamicObject.slp)
            .SetDate(DateTime.Parse((string)dynamicObject.datetime));
            return(builder.Build());
        }
Ejemplo n.º 14
0
        public void Create_TextMessage()
        {
            // Arrange
            var weatherData = WeatherDataBuilder.Randomized()
                              .WithWarmWeather()
                              .WithSunnyWeather()
                              .Build();

            // Act
            var recommendation = recommendationFactory.Create(weatherData);

            // Assert
            Assert.Equal(OutreachType.TextMessage, recommendation.RecommendedOutreachCode);
        }
Ejemplo n.º 15
0
        protected override WeatherData BuildWeatherDataFromDynamicObject(dynamic o)
        {
            var builder = new WeatherDataBuilder();

            builder.SetDate((DateTime)o.Date)
            .SetMinTemperature((float)o.Temperature.Minimum.Value, TemperatureScale.Celsius)
            .SetMaxTemperature((float)o.Temperature.Maximum.Value, TemperatureScale.Celsius)
            .SetWindDirection((int)o.Day.Wind.Direction.Degrees)
            .SetWindSpeed((float)o.Day.Wind.Speed.Value, WindSpeedUnit.KilometersPerHour)
            .SetChanceOfRain((int)o.Day.PrecipitationProbability)
            .SetPrecipitationSummary((float)o.Day.TotalLiquid.Value)
            .SetWeatherCode((int)o.Day.Icon)
            .SetWeatherDescription((string)o.Day.IconPhrase);
            return(builder.Build());
        }
Ejemplo n.º 16
0
        public void RecommendationOutreachType_displays_string(OutreachType type, string expectedValue)
        {
            // Arrange
            var startTime        = DateTime.UtcNow;
            var endTime          = startTime.AddHours(3);
            var weatherDataValue = WeatherDataBuilder.Randomized().Build();

            // Act
            var recommendationValue = new RecommendationValue(startTime,
                                                              endTime,
                                                              type,
                                                              weatherDataValue);

            // Assert
            Assert.Equal(expectedValue, recommendationValue.RecommendedOutreachType);
        }
Ejemplo n.º 17
0
        protected override WeatherData BuildWeatherDataFromDynamicObject(dynamic o)
        {
            var builder = new WeatherDataBuilder();

            _ = builder.SetDate(_dateProvider.GetActualDateTime())
                .SetTemperature((float)o.temp, TemperatureScale.Celsius)
                .SetApparentTemperature((float)o.app_temp, TemperatureScale.Celsius)
                .SetWindDirection((int)o.wind_dir)
                .SetWindSpeed((float)o.wind_spd, WindSpeedUnit.MetersPerSecond)
                .SetPressure((int)o.slp)
                .SetHumidity((int)o.rh)
                .SetPrecipitationSummary((float)o.precip)
                .SetWeatherDescription((string)o.weather.description)
                .SetWeatherCode((int)o.weather.code);
            return(builder.Build());
        }
Ejemplo n.º 18
0
        protected override WeatherData BuildWeatherDataFromDynamicObject(dynamic dynamicObject)
        {
            var builder = new WeatherDataBuilder();

            builder
            .SetTemperature((float)dynamicObject.temp, TemperatureScale.Celsius)
            .SetApparentTemperature((float)dynamicObject.feels_like, TemperatureScale.Celsius)
            .SetHumidity((int)dynamicObject.humidity)
            .SetPressure((int)dynamicObject.pressure)
            .SetWindSpeed((float)dynamicObject.wind_speed, WindSpeedUnit.MetersPerSecond)
            .SetWindDirection((int)dynamicObject.wind_deg)
            .SetWeatherCode((int)dynamicObject.weather[0].id)
            .SetWeatherDescription((string)dynamicObject.weather[0].description)
            .SetDate(DateProvider.GetActualDateTime());
            return(builder.Build());
        }
Ejemplo n.º 19
0
        protected override WeatherData BuildWeatherDataFromDynamicObject(dynamic dynamicObject)
        {
            var builder = new WeatherDataBuilder();

            builder.SetTemperature((float)dynamicObject.Temperature.Metric.Value, TemperatureScale.Celsius)
            .SetApparentTemperature((float)dynamicObject.RealFeelTemperature.Metric.Value, TemperatureScale.Celsius)
            .SetHumidity((int)dynamicObject.RelativeHumidity)
            .SetWindDirection((int)dynamicObject.Wind.Direction.Degrees)
            .SetWindSpeed((float)dynamicObject.Wind.Speed.Metric.Value, WindSpeedUnit.KilometersPerHour)
            .SetPressure((int)dynamicObject.Pressure.Metric.Value)
            .SetPrecipitationSummary((float)dynamicObject.PrecipitationSummary.Precipitation.Metric.Value)
            .SetWeatherCode((int)dynamicObject.WeatherIcon)
            .SetWeatherDescription((string)dynamicObject.WeatherText)
            .SetDate(_dateProvider.GetActualDateTime());
            return(builder.Build());
        }
Ejemplo n.º 20
0
        protected override WeatherData BuildWeatherDataFromDynamicObject(dynamic dynamicObject)
        {
            var builder = new WeatherDataBuilder();

            builder
            .SetMinTemperature((float)dynamicObject.temp.min, TemperatureScale.Celsius)
            .SetMaxTemperature((float)dynamicObject.temp.max, TemperatureScale.Celsius)
            .SetChanceOfRain((int)((float)dynamicObject.pop * 100))
            .SetWeatherCode((int)dynamicObject.weather[0].id)
            .SetWeatherDescription((string)dynamicObject.weather[0].description)
            .SetWindSpeed((float)dynamicObject.wind_speed, WindSpeedUnit.MetersPerSecond)
            .SetWindDirection((int)dynamicObject.wind_deg)
            .SetDate(GetDateTimeFromUnixTimeStamp((long)dynamicObject.dt));

            return(builder.Build());
        }
Ejemplo n.º 21
0
        private OutreachRecommendationsBuilder()
        {
            var start = DateTime.UtcNow;
            var end   = start.AddHours(3);

            // TODO - Use actual random values
            outreachRecommendation = new OutreachRecommendation(
                "54022",
                "River Falls",
                new List <RecommendationValue>
            {
                new RecommendationValue(
                    start,
                    end,
                    OutreachType.Email,
                    WeatherDataBuilder.Randomized().Build())
            }
                );
        }
Ejemplo n.º 22
0
        public void Ctor_Argument_Map()
        {
            // Arrange
            var startTime        = DateTime.UtcNow;
            var endTime          = startTime.AddHours(3);
            var outreachType     = OutreachType.Email;
            var weatherDataValue = WeatherDataBuilder.Randomized().Build();

            // Act
            var recommendationValue = new RecommendationValue(startTime,
                                                              endTime,
                                                              outreachType,
                                                              weatherDataValue);

            // Assert
            Assert.Equal(startTime, recommendationValue.StartTime);
            Assert.Equal(endTime, recommendationValue.EndTime);
            Assert.Equal(outreachType, recommendationValue.RecommendedOutreachCode);
            Assert.Equal(weatherDataValue, recommendationValue.Weather);
        }
Ejemplo n.º 23
0
        public void SetWindSpeed_InvalidValue_ThrowsException(float value)
        {
            var builder = new WeatherDataBuilder();

            Assert.ThrowsAny <InvalidOperationException>(() => builder.SetWindSpeed(value, WindSpeedUnit.KilometersPerHour));
        }
Ejemplo n.º 24
0
        public void SetChanceOfRain_InvalidValue_ThrowsException(int value)
        {
            var builder = new WeatherDataBuilder();

            Assert.ThrowsAny <InvalidOperationException>(() => builder.SetChanceOfRain(value));
        }