mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-07 04:16:51 +00:00
Revert "removed GetAllPublic overload due to paging issue and parameters clobbering"
This reverts commit 26a8bf0e81.
This commit is contained in:
@@ -158,6 +158,65 @@ namespace Octokit.Tests.Reactive
|
||||
}
|
||||
}
|
||||
|
||||
public class TheGetAllPublicRepositoriesSinceMethod
|
||||
{
|
||||
[Fact]
|
||||
public async Task ReturnsEveryPageOfRepositories()
|
||||
{
|
||||
var firstPageUrl = new Uri("/repositories", UriKind.Relative);
|
||||
var secondPageUrl = new Uri("https://example.com/page/2");
|
||||
var firstPageLinks = new Dictionary<string, Uri> { { "next", secondPageUrl } };
|
||||
IApiResponse<List<Repository>> firstPageResponse = new ApiResponse<List<Repository>>(
|
||||
CreateResponseWithApiInfo(firstPageLinks),
|
||||
new List<Repository>
|
||||
{
|
||||
new Repository(364),
|
||||
new Repository(365),
|
||||
new Repository(366)
|
||||
});
|
||||
|
||||
var thirdPageUrl = new Uri("https://example.com/page/3");
|
||||
var secondPageLinks = new Dictionary<string, Uri> { { "next", thirdPageUrl } };
|
||||
IApiResponse<List<Repository>> secondPageResponse = new ApiResponse<List<Repository>>
|
||||
(
|
||||
CreateResponseWithApiInfo(secondPageLinks),
|
||||
new List<Repository>
|
||||
{
|
||||
new Repository(367),
|
||||
new Repository(368),
|
||||
new Repository(369)
|
||||
});
|
||||
|
||||
IApiResponse<List<Repository>> lastPageResponse = new ApiResponse<List<Repository>>(
|
||||
new Response(),
|
||||
new List<Repository>
|
||||
{
|
||||
new Repository(370)
|
||||
});
|
||||
|
||||
var gitHubClient = Substitute.For<IGitHubClient>();
|
||||
gitHubClient.Connection.Get<List<Repository>>(firstPageUrl,
|
||||
Arg.Is<Dictionary<string, string>>(d => d.Count == 1
|
||||
&& d["since"] == "364"), null)
|
||||
.Returns(Task.FromResult(firstPageResponse));
|
||||
gitHubClient.Connection.Get<List<Repository>>(secondPageUrl, null, null)
|
||||
.Returns(Task.FromResult(secondPageResponse));
|
||||
gitHubClient.Connection.Get<List<Repository>>(thirdPageUrl, null, null)
|
||||
.Returns(Task.FromResult(lastPageResponse));
|
||||
|
||||
var repositoriesClient = new ObservableRepositoriesClient(gitHubClient);
|
||||
|
||||
var results = await repositoriesClient.GetAllPublic(new PublicRepositoryRequest(364)).ToArray();
|
||||
|
||||
Assert.Equal(7, results.Length);
|
||||
gitHubClient.Connection.Received(1).Get<List<Repository>>(firstPageUrl,
|
||||
Arg.Is<Dictionary<string, string>>(d=>d.Count == 1
|
||||
&& d["since"] == "364"), null);
|
||||
gitHubClient.Connection.Received(1).Get<List<Repository>>(secondPageUrl, null, null);
|
||||
gitHubClient.Connection.Received(1).Get<List<Repository>>(thirdPageUrl, null, null);
|
||||
}
|
||||
}
|
||||
|
||||
public class TheGetAllBranchesMethod
|
||||
{
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user