public void FirstPageQueryToString_ReturnsCorrectQuery() { var fixture = new Fixture(); var type = fixture.Create <string>(); var path = fixture.Create <string>(); var pageSize = fixture.Create <int>(); var query = new ListingFetcherQuery(type, path, pageSize); var expectedResult = $"?type={type}&zo={path}&pagesize={pageSize}"; var result = query.FirstPageQueryToString(); result.Should().BeEquivalentTo(expectedResult); }
public async Task Fetch_FirstPageFetchingFails_ReturnsFailure() { var fixture = new Fixture(); var type = fixture.Create <string>(); var path = fixture.Create <string>(); var pageSize = fixture.Create <int>(); var agentCollectionResult = Result.Fail <AgentCollection>(""); var responseMessage = Result.Fail <HttpResponseMessage>(""); var query = new ListingFetcherQuery(type, path, pageSize); var queryString = query.FirstPageQueryToString(); _jsonApiGetRequest.Setup(z => z.Execute(HttpClientNames.Funda, _apiKey, queryString)).ReturnsAsync(responseMessage); _httpResponseMessageJsonParser.Setup(z => z.Parse <AgentCollection>(responseMessage)).ReturnsAsync(agentCollectionResult); var result = await _listingFetcher.Fetch(query); _jsonApiGetRequest.Verify(z => z.Execute(HttpClientNames.Funda, _apiKey, queryString), Times.Once); _httpResponseMessageJsonParser.Verify(z => z.Parse <AgentCollection>(responseMessage), Times.Once); result.IsFailed.Should().BeTrue(); }
public async Task <Result <AgentCollection> > Fetch(ListingFetcherQuery query) { return(await Fetch(query.FirstPageQueryToString())); }