public async Task GetFoodTruckInfoJsonReturnsNull()
        {
            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(JsonConvert.SerializeObject("malformed_json"), Encoding.UTF8, "application/json")
            };

            SetupHttpClient(response);

            var repository = new FoodTruckInfoHttpRepository(new FoodTruckFinderConfig {
                Url = "https://www.xyz.com/"
            }, _httpClientFactoryMock.Object);

            var actual = await repository.GetFoodTruckInfoJson(1, 2);

            actual.Should().BeNull();

            var queryParams = new Dictionary <string, string>()
            {
                { "latitude", "1" },
                { "longitude", "2" }
            };

            var requestUri = QueryHelpers.AddQueryString("https://www.xyz.com/", queryParams);

            _clientHandlerMock.Protected().Verify(
                "SendAsync",
                Times.Exactly(1),
                ItExpr.Is <HttpRequestMessage>(x =>
                                               x.Headers.GetValues("Accept").FirstOrDefault() == "application/json" &&
                                               x.Method == HttpMethod.Get &&
                                               x.RequestUri.ToString() == requestUri
                                               ), ItExpr.IsAny <CancellationToken>());
        }
        public async Task GetFoodTruckInfoJsonReturnsFoodTruckInfoJsonResponse()
        {
            var foodTruckInfoJsonResponses = new List <FoodTruckInfoJsonResponse>
            {
                new FoodTruckInfoJsonResponse
                {
                    ObjectId            = "1",
                    Address             = "123 Fake Street",
                    Applicant           = "ABC Foods",
                    FoodItems           = "Pizza, Fries and Burgers.",
                    LocationDescription = "Right across from 123 tower."
                },
                new FoodTruckInfoJsonResponse
                {
                    ObjectId            = "2",
                    Address             = "456 Fake Street",
                    Applicant           = "DEF Foods",
                    FoodItems           = "Gyros, Fries and Burgers.",
                    LocationDescription = "Right across from 456 tower."
                }
            };
            var response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(JsonConvert.SerializeObject(foodTruckInfoJsonResponses), Encoding.UTF8, "application/json")
            };

            SetupHttpClient(response);

            var repository = new FoodTruckInfoHttpRepository(new FoodTruckFinderConfig {
                Url = "https://www.xyz.com/"
            }, _httpClientFactoryMock.Object);

            var actual = await repository.GetFoodTruckInfoJson(1, 2);

            actual.Should().BeEquivalentTo(foodTruckInfoJsonResponses);

            var queryParams = new Dictionary <string, string>()
            {
                { "latitude", "1" },
                { "longitude", "2" }
            };

            var requestUri = QueryHelpers.AddQueryString("https://www.xyz.com/", queryParams);

            _clientHandlerMock.Protected().Verify(
                "SendAsync",
                Times.Exactly(1),
                ItExpr.Is <HttpRequestMessage>(x =>
                                               x.Headers.GetValues("Accept").FirstOrDefault() == "application/json" &&
                                               x.Method == HttpMethod.Get &&
                                               x.RequestUri.ToString() == requestUri
                                               ), ItExpr.IsAny <CancellationToken>());
        }