public void GetRepoContributorsService_ReturnsException()
        {
            // Arrange
            var mockGitHubRepoRepository = new Mock<IGitHubRepoRepository>();
            var mockUnitOfWork = new Mock<IUnitOfWork>();

            // create a list of contribs to return
            var owner = "fakeUserName";
            string repoName = null;

            mockGitHubRepoRepository.Setup(s => s.GetRepoContributors(owner, repoName)).Throws(new System.Exception("Fake exception"));

            var svc = new GitHubRepoService(mockGitHubRepoRepository.Object, mockUnitOfWork.Object);

            // Act
            var result = (List<GitHubUserDTO>)svc.GetRepoContributors(owner, repoName);

            // Assert
            // automatic
        }
        public void GetRepoContributorsService_ReturnsRepositoriesList()
        {
            // Arrange
            var mockGitHubRepoRepository = new Mock<IGitHubRepoRepository>();
            var mockUnitOfWork = new Mock<IUnitOfWork>();

            // create a list of contribs to return
            var owner = "fakeUserName";
            string repoName = "repoXPTO";
            var contribList = (List<GitHubUserDTO>)MockHelper.GetRepoContributors(owner, repoName);

            mockGitHubRepoRepository.Setup(s => s.GetRepoContributors(owner, repoName)).Returns(contribList);

            var svc = new GitHubRepoService(mockGitHubRepoRepository.Object, mockUnitOfWork.Object);

            // Act
            var result = (List<GitHubUserDTO>)svc.GetRepoContributors(owner, repoName);

            // Assert
            Assert.IsTrue(result.Count == contribList.Count);
        }
        public void GetRepoContributorsService_ifRepoIsInvalid_ReturnsNull()
        {
            // Arrange
            var mockGitHubRepoRepository = new Mock<IGitHubRepoRepository>();
            var mockUnitOfWork = new Mock<IUnitOfWork>();

            // create a list of contribs to return
            var owner = "fakeUserName";
            string repoName = null;
            IEnumerable<GitHubUserDTO> contribList = null;

            mockGitHubRepoRepository.Setup(s => s.GetRepoContributors(owner, repoName)).Returns(contribList);

            var svc = new GitHubRepoService(mockGitHubRepoRepository.Object, mockUnitOfWork.Object);

            // Act
            var result = (List<GitHubUserDTO>)svc.GetRepoContributors(owner, repoName);

            // Assert
            Assert.IsNull(result);
        }