本文整理匯總了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);
}