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

            // create a list of repositories to return
            string query = null;

            mockGitHubRepoRepository.Setup(s => s.SearchRepositories(query)).Throws(new System.Exception("Fake exception"));

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

            // Act
            var result = (List<GitHubRepo>)svc.SearchByRepoName(query);

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

            // create a list of repositories to return
            var owner = "fakeUserName";
            string query = "repoXPTO";
            var userRepositories = (List<GitHubRepo>)MockHelper.GenerateFakeRepos(owner);

            mockGitHubRepoRepository.Setup(s => s.SearchRepositories(query)).Returns(userRepositories);

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

            // Act
            var result = (List<GitHubRepo>)svc.SearchByRepoName(query);

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

            // create a list of repositories to return
            string query = null;
            List<GitHubRepo> userRepositories = null;

            mockGitHubRepoRepository.Setup(s => s.SearchRepositories(query)).Returns(userRepositories);

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

            // Act
            var result = (List<GitHubRepo>)svc.SearchByRepoName(query);

            // Assert
            Assert.IsNull(result);
        }