From 73605ebf676c2ebdc55ccec07af9fbb2f67c552f Mon Sep 17 00:00:00 2001 From: "aedampir@gmail.com" Date: Wed, 8 Jun 2016 22:23:56 +0700 Subject: [PATCH] added new overloads on clients --- .../IObservableRepositoryForksClient.cs | 21 ++++++++ .../ObservableRepositoryForksClient.cs | 48 ++++++++++++++++-- .../Clients/RepositoryForksClientTests.cs | 2 +- .../Clients/RepositoryForksClientTests.cs | 6 +-- Octokit/Clients/IRepositoryForksClient.cs | 21 ++++++++ Octokit/Clients/RepositoryForksClient.cs | 49 +++++++++++++++++-- 6 files changed, 136 insertions(+), 11 deletions(-) diff --git a/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs b/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs index bac871d5..212d582b 100644 --- a/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs +++ b/Octokit.Reactive/Clients/IObservableRepositoryForksClient.cs @@ -4,12 +4,33 @@ namespace Octokit.Reactive { public interface IObservableRepositoryForksClient { + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + IObservable GetAll(string owner, string repositoryName); + + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + IObservable GetAll(string owner, string repositoryName, ApiOptions options); + /// /// Gets the list of forks defined for a repository /// /// See API documentation for more information. /// IObservable GetAll(string owner, string repositoryName, RepositoryForksListRequest request); + + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + IObservable GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options); /// /// Creates a fork for a repository. Specify organization in the fork parameter to create for an organization. diff --git a/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs b/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs index 3238cd6c..d011bc19 100644 --- a/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs +++ b/Octokit.Reactive/Clients/ObservableRepositoryForksClient.cs @@ -16,10 +16,38 @@ namespace Octokit.Reactive public ObservableRepositoryForksClient(IGitHubClient client) { Ensure.ArgumentNotNull(client, "client"); + _client = client.Repository.Forks; _connection = client.Connection; } + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + public IObservable GetAll(string owner, string repositoryName) + { + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); + + return GetAll(owner, repositoryName, ApiOptions.None); + } + + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + public IObservable GetAll(string owner, string repositoryName, ApiOptions options) + { + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); + Ensure.ArgumentNotNull(options, "options"); + + return _connection.GetAndFlattenAllPages(ApiUrls.RepositoryForks(owner, repositoryName), options); + } + /// /// Gets the list of forks defined for a repository /// @@ -29,10 +57,24 @@ namespace Octokit.Reactive { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); + Ensure.ArgumentNotNull(request, "request"); - return request == null - ? _connection.GetAndFlattenAllPages(ApiUrls.RepositoryForks(owner, repositoryName)) - : _connection.GetAndFlattenAllPages(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary()); + return GetAll(owner, repositoryName, request, ApiOptions.None); + } + + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + public IObservable GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options) + { + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); + Ensure.ArgumentNotNull(request, "request"); + Ensure.ArgumentNotNull(options, "options"); + + return _connection.GetAndFlattenAllPages(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary(), options); } /// diff --git a/Octokit.Tests.Integration/Clients/RepositoryForksClientTests.cs b/Octokit.Tests.Integration/Clients/RepositoryForksClientTests.cs index 3f7c5af7..a0d73878 100644 --- a/Octokit.Tests.Integration/Clients/RepositoryForksClientTests.cs +++ b/Octokit.Tests.Integration/Clients/RepositoryForksClientTests.cs @@ -13,7 +13,7 @@ namespace Octokit.Tests.Integration.Clients { var github = Helper.GetAuthenticatedClient(); - var forks = await github.Repository.Forks.GetAll("octokit", "octokit.net", null); + var forks = await github.Repository.Forks.GetAll("octokit", "octokit.net"); var masterFork = forks.FirstOrDefault(fork => fork.FullName == "TeamBinary/octokit.net"); Assert.NotNull(masterFork); diff --git a/Octokit.Tests/Clients/RepositoryForksClientTests.cs b/Octokit.Tests/Clients/RepositoryForksClientTests.cs index acc0f47a..28474a7b 100644 --- a/Octokit.Tests/Clients/RepositoryForksClientTests.cs +++ b/Octokit.Tests/Clients/RepositoryForksClientTests.cs @@ -26,7 +26,7 @@ namespace Octokit.Tests.Clients var connection = Substitute.For(); var client = new RepositoriesClient(connection); - client.Forks.GetAll("fake", "repo", null); + client.Forks.GetAll("fake", "repo"); connection.Received().GetAll(Arg.Is(u => u.ToString() == "repos/fake/repo/forks")); } @@ -49,8 +49,8 @@ namespace Octokit.Tests.Clients { var client = new RepositoriesClient(Substitute.For()); - await Assert.ThrowsAsync(() => client.Forks.GetAll(null, "name", null)); - await Assert.ThrowsAsync(() => client.Forks.GetAll("owner", null, null)); + await Assert.ThrowsAsync(() => client.Forks.GetAll(null, "name")); + await Assert.ThrowsAsync(() => client.Forks.GetAll("owner", null)); } } diff --git a/Octokit/Clients/IRepositoryForksClient.cs b/Octokit/Clients/IRepositoryForksClient.cs index 8d026244..76ac2864 100644 --- a/Octokit/Clients/IRepositoryForksClient.cs +++ b/Octokit/Clients/IRepositoryForksClient.cs @@ -5,12 +5,33 @@ namespace Octokit { public interface IRepositoryForksClient { + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + Task> GetAll(string owner, string repositoryName); + + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + Task> GetAll(string owner, string repositoryName, ApiOptions options); + /// /// Gets the list of forks defined for a repository /// /// See API documentation for more information. /// Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request); + + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options); /// /// Creates a fork for a repository. Specify organization in the fork parameter to create for an organization. diff --git a/Octokit/Clients/RepositoryForksClient.cs b/Octokit/Clients/RepositoryForksClient.cs index c45a634b..91920403 100644 --- a/Octokit/Clients/RepositoryForksClient.cs +++ b/Octokit/Clients/RepositoryForksClient.cs @@ -19,14 +19,55 @@ namespace Octokit /// /// See API documentation for more information. /// - public Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request) + public Task> GetAll(string owner, string repositoryName) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); - return request == null - ? ApiConnection.GetAll(ApiUrls.RepositoryForks(owner, repositoryName)) - : ApiConnection.GetAll(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary()); + return GetAll(owner, repositoryName, ApiOptions.None); + } + + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + public Task> GetAll(string owner, string repositoryName, ApiOptions options) + { + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); + Ensure.ArgumentNotNull(options, "options"); + + return ApiConnection.GetAll(ApiUrls.RepositoryForks(owner, repositoryName), options); + } + + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + public Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request) + { + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); + Ensure.ArgumentNotNull(request, "request"); + + return GetAll(owner, repositoryName, request, ApiOptions.None); + } + + /// + /// Gets the list of forks defined for a repository + /// + /// See API documentation for more information. + /// + public Task> GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options) + { + Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); + Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); + Ensure.ArgumentNotNull(request, "request"); + Ensure.ArgumentNotNull(options, "options"); + + return ApiConnection.GetAll(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary(), options); } ///