Exemplo n.º 1
0
        public void GetUriWithQueryStrings__return_search_uri_with_query_strings(GitSearchType gitSearchType, string searchTerm, string searchSort, string searchOrder, int?searchPerPage, int?searchPageNumber)
        {
            //Arrange
            var expectedString = $"{gitSearchType}?q={HttpUtility.UrlEncode(searchTerm)}";

            if (!string.IsNullOrEmpty(searchSort) && !string.IsNullOrEmpty(searchOrder))
            {
                expectedString += $"&sort={searchSort}&order={searchOrder}";
            }
            if (searchPerPage != null)
            {
                expectedString += $"&per_page={searchPerPage}";
            }
            if (searchPageNumber != null)
            {
                expectedString += $"&page={searchPageNumber}";
            }

            //Act
            var actualString = subject.GetUriWithQueryStrings(gitSearchType, searchTerm, searchSort, searchOrder, searchPerPage, searchPageNumber);

            //Assert
            actualString.Should().Be(expectedString);
        }
Exemplo n.º 2
0
        public void GetSearchResponse__returns_repository_search_results_from_github_repository_search_api()
        {
            //Arrange
            var mockHttpClient = Substitute.For <HttpClient>();

            mockHttpClient.BaseAddress = new Uri(StaticVariables.searchBaseAddress);
            mockSubject.GetHttpClient(GitSearchType.repositories).Returns(mockHttpClient);

            var uriWithQueryStrings = $"{GitSearchType.repositories}?q={HttpUtility.UrlEncode(searchTerm)}&per_page={perPage}&page={pageNumber}";

            mockSubject.GetUriWithQueryStrings(GitSearchType.repositories, searchTerm, sort, order, perPage, pageNumber).Returns(uriWithQueryStrings);

            //Act
            var result = mockSubject.GetSearchResponse <GitBaseResponse <GitRepositorySearchResponse> >(GitSearchType.repositories, searchTerm, sort, order, perPage, pageNumber);

            //Assert
            mockSubject.Received(1).GetHttpClient(GitSearchType.repositories);
            mockSubject.Received(1).GetUriWithQueryStrings(GitSearchType.repositories, searchTerm, sort, order, perPage, pageNumber);
            mockSubject.GetHttpClient(GitSearchType.repositories).Received(1).GetAsync(mockSubject.GetUriWithQueryStrings(GitSearchType.repositories, searchTerm, sort, order, perPage, pageNumber));
        }