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."); }
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."); }
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)); } }
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")); }
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."); }
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")); }
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}"); }