本文整理汇总了C#中Octokit.Reactive.ObservableRepositoriesClient.GetAllForCurrent方法的典型用法代码示例。如果您正苦于以下问题:C# ObservableRepositoriesClient.GetAllForCurrent方法的具体用法?C# ObservableRepositoriesClient.GetAllForCurrent怎么用?C# ObservableRepositoriesClient.GetAllForCurrent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Octokit.Reactive.ObservableRepositoriesClient
的用法示例。
在下文中一共展示了ObservableRepositoriesClient.GetAllForCurrent方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReturnsEveryPageOfRepositories
public async Task ReturnsEveryPageOfRepositories()
{
var firstPageUrl = new Uri("user/repos", UriKind.Relative);
var secondPageUrl = new Uri("https://example.com/page/2");
var firstPageLinks = new Dictionary<string, Uri> { { "next", secondPageUrl } };
var firstPageResponse = new ApiResponse<List<Repository>>(
CreateResponseWithApiInfo(firstPageLinks),
new List<Repository>
{
new Repository(1),
new Repository(2),
new Repository(3)
});
var thirdPageUrl = new Uri("https://example.com/page/3");
var secondPageLinks = new Dictionary<string, Uri> { { "next", thirdPageUrl } };
var secondPageResponse = new ApiResponse<List<Repository>>
(
CreateResponseWithApiInfo(secondPageLinks),
new List<Repository>
{
new Repository(4),
new Repository(5),
new Repository(6)
});
var lastPageResponse = new ApiResponse<List<Repository>>(
new Response(),
new List<Repository>
{
new Repository(7)
});
var gitHubClient = Substitute.For<IGitHubClient>();
gitHubClient.Connection.GetResponse<List<Repository>>(firstPageUrl)
.Returns(Task.Factory.StartNew<IApiResponse<List<Repository>>>(() => firstPageResponse));
gitHubClient.Connection.GetResponse<List<Repository>>(secondPageUrl)
.Returns(Task.Factory.StartNew<IApiResponse<List<Repository>>>(() => secondPageResponse));
gitHubClient.Connection.GetResponse<List<Repository>>(thirdPageUrl)
.Returns(Task.Factory.StartNew<IApiResponse<List<Repository>>>(() => lastPageResponse));
var repositoriesClient = new ObservableRepositoriesClient(gitHubClient);
var results = await repositoriesClient.GetAllForCurrent().ToArray();
Assert.Equal(7, results.Length);
gitHubClient.Connection.Received(1).Get<List<Repository>>(firstPageUrl, null, null);
gitHubClient.Connection.Received(1).Get<List<Repository>>(secondPageUrl, null, null);
gitHubClient.Connection.Received(1).Get<List<Repository>>(thirdPageUrl, null, null);
}
示例2: StopsMakingNewRequestsWhenTakeIsFulfilled
public async Task StopsMakingNewRequestsWhenTakeIsFulfilled()
{
var firstPageUrl = new Uri("user/repos", UriKind.Relative);
var secondPageUrl = new Uri("https://example.com/page/2");
var firstPageLinks = new Dictionary<string, Uri> { { "next", secondPageUrl } };
var firstPageResponse = new ApiResponse<List<Repository>>
{
BodyAsObject = new List<Repository>
{
new Repository {Id = 1},
new Repository {Id = 2},
new Repository {Id = 3}
},
ApiInfo = CreateApiInfo(firstPageLinks)
};
var thirdPageUrl = new Uri("https://example.com/page/3");
var secondPageLinks = new Dictionary<string, Uri> { { "next", thirdPageUrl } };
var secondPageResponse = new ApiResponse<List<Repository>>
{
BodyAsObject = new List<Repository>
{
new Repository {Id = 4},
new Repository {Id = 5},
new Repository {Id = 6}
},
ApiInfo = CreateApiInfo(secondPageLinks)
};
var fourthPageUrl = new Uri("https://example.com/page/4");
var thirdPageLinks = new Dictionary<string, Uri> { { "next", fourthPageUrl } };
var thirdPageResponse = new ApiResponse<List<Repository>>
{
BodyAsObject = new List<Repository>
{
new Repository {Id = 7}
},
ApiInfo = CreateApiInfo(thirdPageLinks)
};
var lastPageResponse = new ApiResponse<List<Repository>>
{
BodyAsObject = new List<Repository>
{
new Repository {Id = 8}
},
ApiInfo = CreateApiInfo(new Dictionary<string, Uri>())
};
var gitHubClient = Substitute.For<IGitHubClient>();
gitHubClient.Connection.GetResponse<List<Repository>>(firstPageUrl)
.Returns(Task.Factory.StartNew<IResponse<List<Repository>>>(() => firstPageResponse));
gitHubClient.Connection.GetResponse<List<Repository>>(secondPageUrl)
.Returns(Task.Factory.StartNew<IResponse<List<Repository>>>(() => secondPageResponse));
gitHubClient.Connection.GetResponse<List<Repository>>(thirdPageUrl)
.Returns(Task.Factory.StartNew<IResponse<List<Repository>>>(() => thirdPageResponse));
gitHubClient.Connection.GetResponse<List<Repository>>(fourthPageUrl)
.Returns(Task.Factory.StartNew<IResponse<List<Repository>>>(() => lastPageResponse));
var repositoriesClient = new ObservableRepositoriesClient(gitHubClient);
var results = await repositoriesClient.GetAllForCurrent().Take(4).ToArray();
Assert.Equal(4, results.Length);
gitHubClient.Connection.Received(1).Get<List<Repository>>(firstPageUrl, null, null);
gitHubClient.Connection.Received(1).Get<List<Repository>>(secondPageUrl, null, null);
gitHubClient.Connection.Received(0).Get<List<Repository>>(thirdPageUrl, null, null);
gitHubClient.Connection.Received(0).Get<List<Repository>>(fourthPageUrl, null, null);
}