public void IsFavoriteRepoService_ReturnsException()
        {
            // Arrange
            var mockGitHubRepoRepository = new Mock<IGitHubRepoRepository>();
            var mockUnitOfWork = new Mock<IUnitOfWork>();
            int repo = -1;

            // force exception
            mockGitHubRepoRepository.Setup(s => s.IsFavoriteRepo(repo)).Throws(new System.Exception("Fake Exception"));

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

            // Act
            var result = svc.IsFavoriteRepo(repo);

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

            // create new repo fake
            var repo = MockHelper.GetRepoByName("owner1", "repoNameFake1");

            mockGitHubRepoRepository.Setup(s => s.IsFavoriteRepo(repo.Id)).Returns(false);

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

            // Act
            var result = svc.IsFavoriteRepo(repo.Id);

            // Assert
            Assert.AreEqual(result, false);
        }
        public void IsFavoriteRepoService_InvalidRepo_ReturnsFalse()
        {
            // Arrange
            var mockGitHubRepoRepository = new Mock<IGitHubRepoRepository>();
            var mockUnitOfWork = new Mock<IUnitOfWork>();

            // create invalid repo
            int repo = -1;

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

            // Act
            var result = svc.IsFavoriteRepo(repo);

            // Assert
            Assert.AreEqual(false, result);
        }