/// <summary> /// Returns a mock submission downloader. /// </summary> private Mock <ISubmissionDownloader> GetMockSubmissionDownloader( IArchive templateContents, StudentSubmissions studentSubmissions) { var submissionDownloader = new Mock <ISubmissionDownloader>(); submissionDownloader .Setup ( sd => sd.DownloadTemplateContentsAsync ( It.Is <Project>(p => p.Name == "Project1") ) ).ReturnsAsync(templateContents); submissionDownloader .Setup ( sd => sd.DownloadSubmissionsAsync ( It.Is <Checkpoint>(c => c.Name == "Checkpoint2"), It.Is <IList <StudentDownloadRequest> > ( requests => requests.Count == 2 && requests[0].Student.User.UserName == "Student1" && requests[0].Submitted == false && requests[1].Student.User.UserName == "Student2" && requests[1].Submitted == true ) ) ).ReturnsAsync(studentSubmissions); return(submissionDownloader); }
/// <summary> /// Returns a mock submission archive builder. /// </summary> private Mock <ISubmissionArchiveBuilder> GetMockSubmissionArchiveBuilder( IArchive templateContents, StudentSubmissions studentSubmissions, Stream expectedArchive) { var archiveBuilder = new Mock <ISubmissionArchiveBuilder>(); archiveBuilder .Setup ( builder => builder.BuildSubmissionArchiveAsync ( It.Is <Project>(p => p.Name == "Project1"), templateContents, studentSubmissions ) ).ReturnsAsync(expectedArchive); return(archiveBuilder); }
public async Task DownloadSubmissionsAsync_DownloasdSubmissions() { var database = GetDatabaseBuilder().Build(); var templateContents = new Mock <IArchive>().Object; var studentSubmissions = new StudentSubmissions(new List <StudentSubmission>()); var expectedResult = new MemoryStream(); var submissionDownloader = GetMockSubmissionDownloader ( templateContents, studentSubmissions ); var submissionArchiveBuilder = GetMockSubmissionArchiveBuilder ( templateContents, studentSubmissions, expectedResult ); var submissionService = GetSubmissionService ( database.Context, submissionDownloader: submissionDownloader.Object, submissionArchiveBuilder: submissionArchiveBuilder.Object ); var result = await submissionService.DownloadSubmissionsAsync ( "Class1", "Project1", "Checkpoint2", "Period1" ); Assert.Equal(result, expectedResult); }
/// <summary> /// Returns a mock submission archive builder. /// </summary> private Mock<ISubmissionArchiveBuilder> GetMockSubmissionArchiveBuilder( IArchive templateContents, StudentSubmissions studentSubmissions, Stream expectedArchive) { var archiveBuilder = new Mock<ISubmissionArchiveBuilder>(); archiveBuilder .Setup ( builder => builder.BuildSubmissionArchiveAsync ( It.Is<Project>(p => p.Name == "Project1"), templateContents, studentSubmissions ) ).ReturnsAsync(expectedArchive); return archiveBuilder; }
/// <summary> /// Returns a mock submission downloader. /// </summary> private Mock<ISubmissionDownloader> GetMockSubmissionDownloader( IArchive templateContents, StudentSubmissions studentSubmissions) { var submissionDownloader = new Mock<ISubmissionDownloader>(); submissionDownloader .Setup ( sd => sd.DownloadTemplateContentsAsync ( It.Is<Project>(p => p.Name == "Project1") ) ).ReturnsAsync(templateContents); submissionDownloader .Setup ( sd => sd.DownloadSubmissionsAsync ( It.Is<Checkpoint>(c => c.Name == "Checkpoint2"), It.Is<IList<StudentDownloadRequest>> ( requests => requests.Count == 2 && requests[0].Student.User.UserName == "Student1" && requests[0].Submitted == false && requests[1].Student.User.UserName == "Student2" && requests[1].Submitted == true ) ) ).ReturnsAsync(studentSubmissions); return submissionDownloader; }
public async Task DownloadSubmissionsAsync_DownloasdSubmissions() { var database = GetDatabaseBuilder().Build(); var templateContents = new Mock<IArchive>().Object; var studentSubmissions = new StudentSubmissions(new List<StudentSubmission>()); var expectedResult = new MemoryStream(); var submissionDownloader = GetMockSubmissionDownloader ( templateContents, studentSubmissions ); var submissionArchiveBuilder = GetMockSubmissionArchiveBuilder ( templateContents, studentSubmissions, expectedResult ); var submissionService = GetSubmissionService ( database.Context, submissionDownloader: submissionDownloader.Object, submissionArchiveBuilder: submissionArchiveBuilder.Object ); var result = await submissionService.DownloadSubmissionsAsync ( "Class1", "Project1", "Checkpoint2", "Period1" ); Assert.Equal(result, expectedResult); }