/// <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);
            }
Esempio n. 5
0
            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);
            }
Esempio n. 6
0
            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);
            }
Esempio n. 7
0
            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 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);
                }
            }
            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);
            }