public async Task SearchAsync_PlaceIsSameAsKeyword(string expected)
        {
            // Arrange
            var placesController = new PlacesController(openWeatherApiClient, wikiApiClient, newsApiClient);

            // Act
            var result = await placesController.SearchAsync(expected);

            // Assert
            Assert.Equal(expected, result.Place);
        }
        public async Task SearchAsync_CheckExceptionThrownWithoutNewsApi()
        {
            // Arrange
            string keyword          = "Amsterdam";
            var    placesController = new PlacesController(openWeatherApiClient, wikiApiClient, null);

            // Act

            // Assert
            await Assert.ThrowsAsync <NullReferenceException>(() => placesController.SearchAsync(keyword));
        }
        public async Task SearchAsync_SimpleConcurrencyCheck(string keyword)
        {
            // Arrange
            var placesController = new PlacesController(openWeatherApiClient, wikiApiClient, newsApiClient);

            // Act
            var result = await placesController.SearchAsync(keyword);

            // Assert
            Assert.NotNull(result.Articles);
            Assert.NotNull(result.WeatherForecast);
            Assert.NotNull(result.PlaceDetails);
        }
        public async Task SearchAsync_ResultWithNewsResultsNotFound()
        {
            // Arrange
            var keyword          = "NewsCheck";
            var placesController = new PlacesController(openWeatherApiClient, wikiApiClient, newsApiClient);

            // Act
            var result = await placesController.SearchAsync(keyword);

            // Assert
            Assert.Null(result.Articles);
            Assert.NotNull(result.WeatherForecast);
            Assert.NotNull(result.PlaceDetails);
        }