Example #1
0
        /// <summary>
        /// Creates a repository populator.
        /// </summary>
        private IRepositoryPopulator GetRepositoryPopulator(
            IRepositoryMetadataRetriever repoMetadataRetriever = null,
            IGitHubTeamClient teamClient       = null,
            IGitHubRepositoryClient repoClient = null)
        {
            var operationRunner = new MockOperationRunner();

            return(new RepositoryPopulator
                   (
                       new Mock <ILogger <RepositoryPopulator> >().Object,
                       repoMetadataRetriever,
                       teamClient,
                       repoClient,
                       operationRunner
                   ));
        }
        public async Task GetAllPushEventsAsync_ReturnsPushEvents()
        {
            var project    = new Project();
            var students   = Collections.CreateList(new ClassroomMembership());
            var pushEvents = Collections.CreateList <GitHubPushEvent>();

            var repoMetadataRetriever = new Mock <IRepositoryMetadataRetriever>();

            repoMetadataRetriever
            .Setup(rmr => rmr.GetStudentRepositoriesAsync(project, students))
            .ReturnsAsync
            (
                new Dictionary <ClassroomMembership, GitHubRepository>()
            {
                [students[0]] = new GitHubRepository
                                (
                    1,
                    "GitHubOrg",
                    "GitHubRepoName",
                    "main"
                                )
            }
            );

            var repoClient = new Mock <IGitHubRepositoryClient>();

            repoClient
            .Setup(rc => rc.GetPushEventsAsync("GitHubOrg", "GitHubRepoName"))
            .ReturnsAsync(pushEvents);

            var operationRunner = new MockOperationRunner();

            var pushEventRetriever = new PushEventRetriever
                                     (
                repoMetadataRetriever.Object,
                repoClient.Object,
                operationRunner
                                     );

            var results = await pushEventRetriever.GetAllPushEventsAsync(project, students);

            Assert.Single(results);
            Assert.Equal(students[0], results[0].Student);
            Assert.Equal(pushEvents, results[0].PushEvents);
        }
		public async Task GetAllPushEventsAsync_ReturnsPushEvents()
		{
			var project = new Project();
			var students = Collections.CreateList(new ClassroomMembership());
			var pushEvents = Collections.CreateList<GitHubPushEvent>();

			var repoMetadataRetriever = new Mock<IRepositoryMetadataRetriever>();
			repoMetadataRetriever
				.Setup(rmr => rmr.GetStudentRepositoriesAsync(project, students))
				.ReturnsAsync
				(
					new Dictionary<ClassroomMembership, GitHubRepository>()
					{
						[students[0]] = new GitHubRepository(1, "GitHubOrg", "GitHubRepoName")
					}
				);

			var repoClient = new Mock<IGitHubRepositoryClient>();
			repoClient
				.Setup(rc => rc.GetPushEventsAsync("GitHubOrg", "GitHubRepoName"))
				.ReturnsAsync(pushEvents);

			var operationRunner = new MockOperationRunner();

			var pushEventRetriever = new PushEventRetriever
			(
				repoMetadataRetriever.Object,
				repoClient.Object,
				operationRunner
			);

			var results = await pushEventRetriever.GetAllPushEventsAsync(project, students);

			Assert.Equal(results.Count, 1);
			Assert.Equal(students[0], results[0].Student);
			Assert.Equal(pushEvents, results[0].PushEvents);
		}
		/// <summary>
		/// Creates a repository populator.
		/// </summary>
		private IRepositoryPopulator GetRepositoryPopulator(
			IRepositoryMetadataRetriever repoMetadataRetriever = null,
			IGitHubTeamClient teamClient = null,
			IGitHubRepositoryClient repoClient = null)
		{
			var operationRunner = new MockOperationRunner();

			return new RepositoryPopulator
			(
				new Mock<ILogger<RepositoryPopulator>>().Object,
				repoMetadataRetriever,
				teamClient,
				repoClient,
				operationRunner
			);
		}