コード例 #1
0
        public async Task GetWeatherReport_emptyCity_Test()
        {
            var            controller  = new HomeController(null);
            WeatherDataDTO weatherData = new WeatherDataDTO();

            var result = await controller.GetWeatherReport("") as JsonResult;

            weatherData = JsonConvert.DeserializeObject <WeatherDataDTO>(result.Data.ToString());

            Assert.AreEqual(weatherData.ErrorMessage, "Please specify city name to get the weather forecast.");
        }
コード例 #2
0
        public async Task GetWeatherReport_invalidCity_Test()
        {
            var service = new WeatherForecastService();

            var            controller  = new HomeController(service);
            WeatherDataDTO weatherData = new WeatherDataDTO();

            var result = await controller.GetWeatherReport("InvalidCity") as JsonResult;

            weatherData = JsonConvert.DeserializeObject <WeatherDataDTO>(result.Data.ToString());

            Assert.AreEqual(weatherData.ErrorMessage, "Please specify a valid city name to get the weather forecast. Or the service is currently unavailable.");
        }
コード例 #3
0
 public IActionResult Post([FromBody] WeatherDataDTO wd)
 {
     try
     {
         repo.InsertData(new WeatherData(wd.StationId, wd.Temperature, wd.Humidity));
         repo.Save();
         return(Ok());
     }
     catch (Exception e)
     {
         return(new ObjectResult("Error: A problem occured.\nException info: " + e.Message));
     }
 }
コード例 #4
0
        public async Task GetWeatherReport_validCity_Test()
        {
            var service = new WeatherForecastService();

            var            controller  = new HomeController(service);
            WeatherDataDTO weatherData = new WeatherDataDTO();

            var result = await controller.GetWeatherReport("Basingstoke") as JsonResult;

            weatherData = JsonConvert.DeserializeObject <WeatherDataDTO>(result.Data.ToString());

            Assert.AreEqual(weatherData.ErrorMessage, "");
            Assert.IsTrue(weatherData.ForecastList.Count > 0);
            Assert.IsTrue(weatherData.CityName.Equals("Basingstoke"));
        }
コード例 #5
0
        public async Task GetWeatherReport_invalidCity_MoqTest()
        {
            var service = new Mock <IWeatherForecastService>();

            service.Setup(s => s.GetWeatherByCity("InvalidCity")).Returns(Task.FromResult("{\"cod\":\"502\",\"message\":\"Error: Not found city\"}"));

            var            controller  = new HomeController(service.Object);
            WeatherDataDTO weatherData = new WeatherDataDTO();

            var result = await controller.GetWeatherReport("InvalidCity") as JsonResult;

            weatherData = JsonConvert.DeserializeObject <WeatherDataDTO>(result.Data.ToString());

            Assert.AreEqual(weatherData.ErrorMessage, "Please specify a valid city name to get the weather forecast. Or the service is currently unavailable.");
        }
コード例 #6
0
        public async Task GetWeatherReport_validCity_MoqTest()
        {
            var service = new Mock <IWeatherForecastService>();

            service.Setup(s => s.GetWeatherByCity("London")).Returns(Task.FromResult("{\"city\" : {\"id\" : 2643743,\"name\" : \"London\",\"coord\" : {	\"lon\" : -0.12574,	\"lat\" : 51.50853},\"country\" : \"GB\",\"population\" : 0,\"sys\" : {	\"population\" : 0}},\"cod\" : \"200\",\"message\" : 0.0045,\"cnt\" : 36,\"list\" : [{	\"dt\" : 1487592000,	\"main\" : {		\"temp\" : 14.7,		\"temp_min\" : 14.05,		\"temp_max\" : 14.7,		\"pressure\" : 1023.78,		\"sea_level\" : 1031.29,		\"grnd_level\" : 1023.78,		\"humidity\" : 82,		\"temp_kf\" : 0.65	},	\"weather\" : [{			\"id\" : 500,			\"main\" : \"Rain\",			\"description\" : \"light rain\",			\"icon\" : \"10d\"		}	],	\"clouds\" : {		\"all\" : 0	},	\"wind\" : {		\"speed\" : 4.82,		\"deg\" : 272	},	\"rain\" : {		\"3h\" : 0.005	},	\"sys\" : {		\"pod\" : \"d\"	},	\"dt_txt\" : \"2017-02-20 12:00:00\"}]}"));

            var            controller  = new HomeController(service.Object);
            WeatherDataDTO weatherData = new WeatherDataDTO();

            var result = await controller.GetWeatherReport("London") as JsonResult;

            weatherData = JsonConvert.DeserializeObject <WeatherDataDTO>(result.Data.ToString());

            Assert.AreEqual(weatherData.ErrorMessage, "");
            Assert.IsTrue(weatherData.ForecastList.Count > 0);
            Assert.IsTrue(weatherData.CityName.Equals("London"));
        }
コード例 #7
0
        public void Json_Dto_To_Json_Test()
        {
            var testDto = new WeatherDataDTO
            {
                CityName     = "Basingstoke",
                ErrorMessage = "",
                ForecastList = new List <ForecastListDTO>()
                {
                    new ForecastListDTO {
                        Day = "Monday", Humidity = 70, MainTemp = 10, WindSpeed = 3.8m, TempMax = 12.4m, TempMin = 6.5m
                    }
                }
            };
            var result = HelperClasses.Json(testDto);

            Assert.AreEqual(result, "{\r\n  \"errorMessage\": \"\",\r\n  \"cityName\": \"Basingstoke\",\r\n  \"forecastList\": [\r\n    {\r\n      \"day\": \"Monday\",\r\n      \"mainTemp\": 10.0,\r\n      \"tempMin\": 6.5,\r\n      \"tempMax\": 12.4,\r\n      \"pressure\": 0.0,\r\n      \"humidity\": 70,\r\n      \"windSpeed\": 3.8\r\n    }\r\n  ]\r\n}");
        }