コード例 #1
0
        public async Task Returns_3_Developers_With_Price_When_Organization_Has_3_Git_Users()
        {
            //Arrange
            string  organizationName = "Vtex";
            decimal generalPrice     = 100m;

            //string userName =
            _mockPriceService.Setup(x => x.CalculateDeveloperPrice(It.IsAny <PricingCriteria>()))
            .Returns(generalPrice);

            var data = new List <User>()
            {
                new User(),
                new User(),
                new User()
            };

            IReadOnlyList <Repository> repositories = new List <Repository>()
            {
                new Repository(),
            };

            //Octokit Mocks

            _UsersClient.Setup(x => x.Get(It.IsAny <string>()))
            .Returns(Task.FromResult <User>(new User()));

            _OrganizationMembersClient.Setup(x => x.GetAll(organizationName))
            .Returns(Task.FromResult <IReadOnlyList <User> >(data));

            _OrganizationsClient.Setup(x => x.Member)
            .Returns(_OrganizationMembersClient.Object);

            _mockRepositories.Setup(x => x.GetAllForUser(It.IsAny <string>()))
            .Returns(Task.FromResult <IReadOnlyList <Repository> >(repositories));

            _mockGitHubClient.Setup(x => x.Repository)
            .Returns(_mockRepositories.Object);

            _mockGitHubClient.Setup(x => x.Organization)
            .Returns(_OrganizationsClient.Object);

            _mockGitHubClient.Setup(x => x.User)
            .Returns(_UsersClient.Object);

            DeveloperService sut = new DeveloperService(_mockGitHubClient.Object, _mockPriceService.Object);

            //Act
            var developers = await sut.GetDevelopersByOrganization(organizationName);

            //Assert
            Assert.AreEqual(developers.Count(), 3);
            //Price on first should be general price
            Assert.AreEqual(developers.First().Price, generalPrice);
        }