/// <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> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="request">Used to request and filter a list of repository forks</param> /// <returns>A <see cref="IObservable{Repository}"/> of <see cref="Repository"/>s representing forks of specified repository.</returns> public IObservable<Repository> GetAll(string owner, string name, RepositoryForksListRequest request) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); return GetAll(owner, name, 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) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(repositoryName, "repositoryName"); return request == null ? _connection.GetAndFlattenAllPages<Repository>(ApiUrls.RepositoryForks(owner, repositoryName)) : _connection.GetAndFlattenAllPages<Repository>(ApiUrls.RepositoryForks(owner, repositoryName), request.ToParametersDictionary()); }
public void RequestsCorrectUrlWithRequestParameters() { var gitHubClient = Substitute.For<IGitHubClient>(); var client = new ObservableRepositoryForksClient(gitHubClient); var repositoryForksListRequest = new RepositoryForksListRequest { Sort = Sort.Stargazers }; client.GetAll("fake", "repo", repositoryForksListRequest); gitHubClient.Received().Repository.Forks.GetAll( "fake", "repo", repositoryForksListRequest); }
public void RequestsCorrectUrlWithRequestParametersWithApiOptions() { var gitHubClient = Substitute.For<IGitHubClient>(); var client = new ObservableRepositoryForksClient(gitHubClient); var options = new ApiOptions { PageCount = 1, StartPage = 1, PageSize = 1 }; var repositoryForksListRequest = new RepositoryForksListRequest { Sort = Sort.Stargazers }; client.GetAll("fake", "repo", repositoryForksListRequest, options); gitHubClient.Received().Repository.Forks.GetAll("fake", "name", repositoryForksListRequest, options); }
public async Task ReturnsCorrectCountOfForksWithStartParameterized() { var github = Helper.GetAuthenticatedClient(); var options = new ApiOptions { PageCount = 1, PageSize = 1, StartPage = 1 }; var repositoryForksListRequest = new RepositoryForksListRequest { Sort = Sort.Newest }; var forks = await github.Repository.Forks.GetAll("octokit", "octokit.net", repositoryForksListRequest, options); Assert.Equal(1, forks.Count); }
public void RequestsCorrectUrlWithRequestParametersWithApiOptions() { var gitHubClient = Substitute.For <IGitHubClient>(); var client = new ObservableRepositoryForksClient(gitHubClient); var options = new ApiOptions { PageCount = 1, StartPage = 1, PageSize = 1 }; var repositoryForksListRequest = new RepositoryForksListRequest { Sort = Sort.Stargazers }; client.GetAll("fake", "repo", repositoryForksListRequest, options); gitHubClient.Received().Repository.Forks.GetAll("fake", "name", repositoryForksListRequest, options); }
public async Task ReturnsForksForRepositorySortingTheResultWithOldestFirstWithApiOptions() { var github = Helper.GetAuthenticatedClient(); var repositoryForksListRequest = new RepositoryForksListRequest { Sort = Sort.Oldest }; var startOptions = new ApiOptions { PageCount = 1, PageSize = 3, StartPage = 1 }; var firstPage = await github.Repository.Forks.GetAll("octokit", "octokit.net", repositoryForksListRequest, startOptions); var firstPageOrdered = firstPage.OrderBy(r => r.CreatedAt).ToList(); var skipStartOptions = new ApiOptions { PageCount = 1, PageSize = 3, StartPage = 1 }; var secondPage = await github.Repository.Forks.GetAll("octokit", "octokit.net", repositoryForksListRequest, skipStartOptions); var secondPageOrdered = secondPage.OrderBy(r => r.CreatedAt).ToList(); for (var index = 0; index < firstPage.Count; index++) { Assert.Equal(firstPageOrdered[index].FullName, firstPage[index].FullName); } for (var index = 0; index < firstPage.Count; index++) { Assert.Equal(secondPageOrdered[index].FullName, secondPage[index].FullName); } }
/// <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> /// <param name="repositoryId">The Id of the repository</param> /// <param name="request">Used to request and filter a list of repository forks</param> /// <param name="options">Options for changing the API response</param> public IObservable<Repository> GetAll(int repositoryId, RepositoryForksListRequest request, ApiOptions options) { Ensure.ArgumentNotNull(request, "request"); Ensure.ArgumentNotNull(options, "options"); return _connection.GetAndFlattenAllPages<Repository>(ApiUrls.RepositoryForks(repositoryId), request.ToParametersDictionary(), 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> /// <param name="owner">The owner of the repository</param> /// <param name="name">The name of the repository</param> /// <param name="request">Used to request and filter a list of repository forks</param> /// <param name="options">Options for changing the API response</param> public IObservable<Repository> GetAll(string owner, string name, RepositoryForksListRequest request, ApiOptions options) { Ensure.ArgumentNotNullOrEmptyString(owner, "owner"); Ensure.ArgumentNotNullOrEmptyString(name, "name"); Ensure.ArgumentNotNull(request, "request"); Ensure.ArgumentNotNull(options, "options"); return _connection.GetAndFlattenAllPages<Repository>(ApiUrls.RepositoryForks(owner, name), request.ToParametersDictionary(), 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> /// <param name="repositoryId">The Id of the repository</param> /// <param name="request">Used to request and filter a list of repository forks</param> public IObservable<Repository> GetAll(int repositoryId, RepositoryForksListRequest request) { Ensure.ArgumentNotNull(request, "request"); return GetAll(repositoryId, 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> /// <param name="repositoryId">The Id of the repository</param> /// <param name="request">Used to request and filter a list of repository forks</param> public IObservable <Repository> GetAll(long repositoryId, RepositoryForksListRequest request) { Ensure.ArgumentNotNull(request, "request"); return(GetAll(repositoryId, request, ApiOptions.None)); }
public async Task ReturnsCorrectCountOfForksWithoutStartParameterized() { var github = Helper.GetAuthenticatedClient(); var options = new ApiOptions { PageCount = 1, PageSize = 1 }; var repositoryForksListRequest = new RepositoryForksListRequest { Sort = Sort.Newest }; var forks = await github.Repository.Forks.GetAll("octokit", "octokit.net", repositoryForksListRequest, options); Assert.Equal(1, forks.Count); }
public async Task ReturnsDistinctForksBasedOnStartPageParameterized() { var github = Helper.GetAuthenticatedClient(); var repositoryForksListRequest = new RepositoryForksListRequest { Sort = Sort.Newest }; var startOptions = new ApiOptions { PageCount = 1, PageSize = 3, StartPage = 1 }; var firstPage = await github.Repository.Forks.GetAll("octokit", "octokit.net", repositoryForksListRequest, startOptions); var skipStartOptions = new ApiOptions { PageCount = 1, PageSize = 3, StartPage = 2 }; var secondPage = await github.Repository.Forks.GetAll("octokit", "octokit.net", repositoryForksListRequest, skipStartOptions); Assert.Equal(3, firstPage.Count); Assert.Equal(3, secondPage.Count); Assert.NotEqual(firstPage[0].Id, secondPage[0].Id); Assert.NotEqual(firstPage[1].Id, secondPage[1].Id); Assert.NotEqual(firstPage[2].Id, secondPage[2].Id); }