public async Task GetsTheWeatherForecast()
        {
            //Arrange
            var http = Substitute.For <IHttp>();

            http
            .Get <MetaWeatherLocation[]>("https://www.metaweather.com/api/location/search/?query=London")
            .Returns(new MetaWeatherLocation[] { new MetaWeatherLocation {
                                                     woeid = "LOCATION-ID"
                                                 } });
            http
            .Get <MetaWeatherForecast>("https://www.metaweather.com/api/location/LOCATION-ID/")
            .Returns(new MetaWeatherForecast
            {
                consolidated_weather = new List <MetaWeatherConsolidatedForecast>
                {
                    new MetaWeatherConsolidatedForecast
                    {
                        applicable_date    = "01/01/2000",
                        the_temp           = 25,
                        weather_state_name = "windy"
                    }
                }
            });

            var controller = new WeatherForecastController(
                logger: Substitute.For <ILogger <WeatherForecastController> >(),
                weatherProvider: new MetaWeatherWeatherProvider(http));

            //Act
            //Assert
            (await controller.GetForecastFor(location: "London")).Should().BeEquivalentTo(new WeatherForecast[]
            {
                new WeatherForecast
                {
                    Date         = DateTime.Parse("01/01/2000"),
                    Summary      = "windy",
                    TemperatureC = 25
                }
            });
        }