added new overloads on clients

This commit is contained in:
aedampir@gmail.com
2016-06-08 22:23:56 +07:00
parent f05f6dcab9
commit 73605ebf67
6 changed files with 136 additions and 11 deletions

View File

@@ -4,12 +4,33 @@ namespace Octokit.Reactive
{
public interface IObservableRepositoryForksClient
{
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
IObservable<Repository> GetAll(string owner, string repositoryName);
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
IObservable<Repository> GetAll(string owner, string repositoryName, ApiOptions options);
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
IObservable<Repository> GetAll(string owner, string repositoryName, RepositoryForksListRequest request);
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
IObservable<Repository> GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options);
/// <summary>
/// Creates a fork for a repository. Specify organization in the fork parameter to create for an organization.

View File

@@ -16,10 +16,38 @@ namespace Octokit.Reactive
public ObservableRepositoryForksClient(IGitHubClient client)
{
Ensure.ArgumentNotNull(client, "client");
_client = client.Repository.Forks;
_connection = client.Connection;
}
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
public IObservable<Repository> GetAll(string owner, string repositoryName)
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
return GetAll(owner, repositoryName, ApiOptions.None);
}
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
public IObservable<Repository> GetAll(string owner, string repositoryName, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
Ensure.ArgumentNotNull(options, "options");
return _connection.GetAndFlattenAllPages<Repository>(ApiUrls.RepositoryForks(owner, repositoryName), options);
}
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
@@ -29,10 +57,24 @@ namespace Octokit.Reactive
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
Ensure.ArgumentNotNull(request, "request");
return request == null
? _connection.GetAndFlattenAllPages<Repository>(ApiUrls.RepositoryForks(owner, repositoryName))
: _connection.GetAndFlattenAllPages<Repository>(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary());
return GetAll(owner, repositoryName, request, ApiOptions.None);
}
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
public IObservable<Repository> 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<Repository>(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary(), options);
}
/// <summary>

View File

@@ -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);

View File

@@ -26,7 +26,7 @@ namespace Octokit.Tests.Clients
var connection = Substitute.For<IApiConnection>();
var client = new RepositoriesClient(connection);
client.Forks.GetAll("fake", "repo", null);
client.Forks.GetAll("fake", "repo");
connection.Received().GetAll<Repository>(Arg.Is<Uri>(u => u.ToString() == "repos/fake/repo/forks"));
}
@@ -49,8 +49,8 @@ namespace Octokit.Tests.Clients
{
var client = new RepositoriesClient(Substitute.For<IApiConnection>());
await Assert.ThrowsAsync<ArgumentNullException>(() => client.Forks.GetAll(null, "name", null));
await Assert.ThrowsAsync<ArgumentNullException>(() => client.Forks.GetAll("owner", null, null));
await Assert.ThrowsAsync<ArgumentNullException>(() => client.Forks.GetAll(null, "name"));
await Assert.ThrowsAsync<ArgumentNullException>(() => client.Forks.GetAll("owner", null));
}
}

View File

@@ -5,12 +5,33 @@ namespace Octokit
{
public interface IRepositoryForksClient
{
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
Task<IReadOnlyList<Repository>> GetAll(string owner, string repositoryName);
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
Task<IReadOnlyList<Repository>> GetAll(string owner, string repositoryName, ApiOptions options);
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
Task<IReadOnlyList<Repository>> GetAll(string owner, string repositoryName, RepositoryForksListRequest request);
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
Task<IReadOnlyList<Repository>> GetAll(string owner, string repositoryName, RepositoryForksListRequest request, ApiOptions options);
/// <summary>
/// Creates a fork for a repository. Specify organization in the fork parameter to create for an organization.

View File

@@ -19,14 +19,55 @@ namespace Octokit
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
public Task<IReadOnlyList<Repository>> GetAll(string owner, string repositoryName, RepositoryForksListRequest request)
public Task<IReadOnlyList<Repository>> GetAll(string owner, string repositoryName)
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
return request == null
? ApiConnection.GetAll<Repository>(ApiUrls.RepositoryForks(owner, repositoryName))
: ApiConnection.GetAll<Repository>(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary());
return GetAll(owner, repositoryName, ApiOptions.None);
}
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
public Task<IReadOnlyList<Repository>> GetAll(string owner, string repositoryName, ApiOptions options)
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName");
Ensure.ArgumentNotNull(options, "options");
return ApiConnection.GetAll<Repository>(ApiUrls.RepositoryForks(owner, repositoryName), options);
}
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
public Task<IReadOnlyList<Repository>> 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);
}
/// <summary>
/// Gets the list of forks defined for a repository
/// </summary>
/// <remarks>See <a href="http://developer.github.com/v3/repos/forks/#list-forks">API documentation</a> for more information.</remarks>
/// <returns></returns>
public Task<IReadOnlyList<Repository>> 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<Repository>(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary(), options);
}
/// <summary>