public async Task GetAll_ShouldReturnEmptySet_WhenThereAreNone()
        {
            // Setup
            var emptyList = new List <PullRequest>();

            mockGitHubClient.Setup(c => c.Get <List <PullRequest> >("repos/ampersandre/random-scale/pulls")).Returns(Task.FromResult(emptyList));

            // Execute
            var actualPullRequests = await service.GetAll("ampersandre", "random-scale");

            // Assert
            AssertUtils.AreIdentical(emptyList, actualPullRequests);
        }
Example #2
0
        public async Task GetAll_ShouldReturnRepositories_WhenThereAreSome()
        {
            // Setup
            var expectedRepositories = Enumerable.Range(1, 4).Select(Generator.GenerateRepository).ToList();

            mockGitHubClient.Setup(c => c.Get <List <Repository> >("user/repos")).Returns(Task.FromResult(expectedRepositories));

            // Execute
            var actualRepositories = await service.GetAll();

            // Assert
            AssertUtils.AreIdentical(expectedRepositories, actualRepositories);
        }
        public async Task GetAll_ShouldReturnPullRequests_WhenThereAreSome()
        {
            // Setup
            var expectedPullRequests = Enumerable.Range(1, 4).Select(Generator.GeneratePullRequest).ToList();

            mockGitHubClient.Setup(c => c.Get <List <PullRequest> >("repos/ampersandre/barn-ville/pulls")).Returns(Task.FromResult(expectedPullRequests));

            // Execute
            var actualPullRequests = await service.GetAll("ampersandre", "barn-ville");

            // Assert
            AssertUtils.AreIdentical(expectedPullRequests, actualPullRequests);
        }
Example #4
0
        public async Task GetAll_ShouldReturnEmptySet_WhenThereAreNone()
        {
            // Setup
            var emptyList = new List <Repository>();

            mockGitHubClient.Setup(c => c.Get <List <Repository> >("user/repos")).Returns(Task.FromResult(emptyList));

            // Execute
            var actualRepositories = await service.GetAll();

            // Assert
            AssertUtils.AreIdentical(emptyList, actualRepositories);
        }
        public async Task GetOne_ShouldReturnExpectedPullRequest_WhenItExists()
        {
            // Setup
            var owner = "ampersandre";
            var name  = "fitbit-except-for-blinking";
            var expectedPullRequest = Generator.GeneratePullRequest();

            mockGitHubClient.Setup(c => c.Get <PullRequest>($"repos/{owner}/{name}/pulls/78")).Returns(Task.FromResult(expectedPullRequest));

            // Execute
            var actualPullRequest = await service.GetOne(owner, name, 78);

            // Assert
            AssertUtils.AreIdentical(expectedPullRequest, actualPullRequest);
        }
Example #6
0
        public async Task GetOne_ShouldReturnExpectedRepository_WhenItExists()
        {
            // Setup
            var owner = "ampersandre";
            var name  = "fitbit-except-for-blinking";
            var expectedRepository = Generator.GenerateRepository();

            mockGitHubClient.Setup(c => c.Get <Repository>($"repos/{owner}/{name}")).Returns(Task.FromResult(expectedRepository));

            // Execute
            var actualRepository = await service.GetOne(owner, name);

            // Assert
            AssertUtils.AreIdentical(expectedRepository, actualRepository);
        }
        public void Get_ShouldReturnExpectedValue_WhenCacheContainsValue()
        {
            // Setup
            var key           = "repository:76";
            var expectedValue = Generator.GenerateRepository(76);
            var valueJson     = JsonConvert.SerializeObject(expectedValue);

            mockRedisDb.Setup(db => db.StringGet($"github-monitor:${key}", CommandFlags.None)).Returns(valueJson);

            // Execute
            var actualValue = redisCacheClient.Get <Repository>(key);

            // Assert
            AssertUtils.AreIdentical(expectedValue, actualValue);
        }
Example #8
0
        public async Task Get_ShouldReturnExpectedObject_GivenResponse()
        {
            // Setup
            var expectedUser     = Generator.GeneraterUser();
            var mockRestResponse = new Mock <IRestResponse <User> >();

            mockRestResponse.Setup(r => r.Data).Returns(() => expectedUser);
            mockRestClient.Setup(c => c.Execute <User>(It.IsAny <IRestRequest>())).Returns(() => mockRestResponse.Object);

            // Execute
            var actualUser = await client.Get <User>("users/ampersandre");

            // Assert
            Assert.IsNotNull(actualUser);
            AssertUtils.AreIdentical(expectedUser, actualUser);
        }
        public async Task IndexController_ShouldReturnRepositories_WhenThereAreRepositories()
        {
            // Setup
            var expectedRepositories = Enumerable.Range(1, 7).Select(Generator.GenerateRepository).ToList();

            mockRepositoryService.Setup(s => s.GetAll()).Returns(() => Task.FromResult(expectedRepositories as IEnumerable <Repository>));

            // Execute
            var result = await indexController.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
            Assert.IsAssignableFrom <List <Repository> >(result.ViewData.Model);
            var actualRepositories = result.ViewData.Model as List <Repository>;

            AssertUtils.AreIdentical(expectedRepositories, actualRepositories);
        }
        public async Task GetWithFunc_ShouldReturnExpectedValue_WhenCacheDoesNotContainValue()
        {
            // Setup
            var key           = "repository:23";
            var expectedValue = Generator.GenerateRepository(23);
            var valueJson     = JsonConvert.SerializeObject(expectedValue);

            mockRedisDb.Setup(db => db.StringGet($"github-monitor:${key}", CommandFlags.None)).Returns(default(string));

            Func <Task <Repository> > resolver = () => {
                return(Task.Run(() => expectedValue));
            };

            // Execute
            var actualValue = await redisCacheClient.Get(key, resolver);

            // Assert
            AssertUtils.AreIdentical(expectedValue, actualValue);
            mockRedisDb.Verify(db => db.StringSetAsync($"github-monitor:${key}", valueJson, TimeSpan.FromMinutes(3), When.Always, CommandFlags.None));
        }
        public async Task GetWithFunc_ShouldReturnExpectedValue_WhenCacheContainsValue()
        {
            // Setup
            var key           = "repository:23";
            var expectedValue = Generator.GenerateRepository(23);

            expectedValue.Name = "The original!";
            var valueJson = JsonConvert.SerializeObject(expectedValue);

            mockRedisDb.Setup(db => db.StringGet($"github-monitor:${key}", CommandFlags.None)).Returns(valueJson);

            Func <Task <Repository> > resolver = () => {
                return(Task.Run(() => Generator.GenerateRepository(23)));
            };

            // Execute
            var actualValue = await redisCacheClient.Get(key, resolver);

            // Assert
            AssertUtils.AreIdentical(expectedValue, actualValue);
        }