public async Task GetRepositoryInfos_LargePageSize()
        {
            var allRepositories = new Repository[] {
                new RepositoryMock("repo1", "user1"),
                new RepositoryMock("repo2", "user1"),
                new RepositoryMock("repo3", "user1")
            };

            var allContributors = new Dictionary <string, Contributor[]>()
            {
                { "repo3", new Contributor[] {
                      new ContributorInfoMock("user5", 1),
                      new ContributorInfoMock("user6", 2),
                      new ContributorInfoMock("user7", 5)
                  } }
            };

            IDataLoaderFactory factory = new DataLoaderFactoryMock(allRepositories, allContributors, 20);

            var loader = new RepositoryInfoService(factory);

            var result = new List <RepositoryStatInfo>();

            await foreach (var repositoryInfo in loader.GetRepositoryInfosAsync("flemsoft"))
            {
                result.Add(repositoryInfo);
            }

            CollectionAssert.AreEquivalent(allRepositories, result.Select(x => x.Repository).ToList());

            var repo1 = result.FirstOrDefault(x => x.Repository.Name == "repo3");

            Assert.IsNotNull(repo1);
            CollectionAssert.AreEquivalent(allContributors["repo3"], repo1.Contributors.ToList());
        }
        public async Task GetRepositoryInfos_ThrowInvalidGitHubResponse()
        {
            var allRepositories = new Repository[] {
                new RepositoryMock("repo1", "user1"),
                new RepositoryMock("repo2", null),
                new RepositoryMock("repo3", "user1")
            };

            var allContributors = new Dictionary <string, Contributor[]>();

            IDataLoaderFactory factory = new DataLoaderFactoryMock(allRepositories, allContributors);

            var loader = new RepositoryInfoService(factory);

            var result = new List <RepositoryStatInfo>();

            await foreach (var repositoryInfo in loader.GetRepositoryInfosAsync("flemsoft"))
            {
                result.Add(repositoryInfo);
            }
        }