public async Task Download_ShouldRedirectToCourseIndex_GivenInvalidUser() { // Arrange var userManager = UserManagerMock.GetMock; userManager.GetUserId(null); var controller = new ExamsController( userManager.Object, cloudinaryService: null, courseService: null, examService: null) { TempData = TempDataMock.GetMock }; using (controller) { // Act var result = await controller.Download(TestExamId); // Assert controller.TempData.AssertErrorMsg(WebConstants.InvalidUserMsg); this.AssertRedirectToCoursesIndex(result); userManager.Verify(); } }
public async Task Download_ShouldRedirectToCourseIndex_GivenUserIsNotTrainerOrEnrolledStudent() { // Arrange var userManager = UserManagerMock.GetMock; userManager.GetUserId(TestUserId); var examService = ExamServiceMock.GetMock; examService.CanBeDownloadedByUser(false); var controller = new ExamsController( userManager.Object, cloudinaryService: null, courseService: null, examService.Object) { TempData = TempDataMock.GetMock }; using (controller) { // Act var result = await controller.Download(TestExamId); // Assert controller.TempData.AssertErrorMsg(WebConstants.ExamDownloadUnauthorizedMsg); this.AssertRedirectToCoursesIndex(result); userManager.Verify(); examService.Verify(); } }
public async Task Download_ShouldRedirectToUrl_GivenValidInput() { // Arrange var userManager = UserManagerMock.GetMock; userManager.GetUserId(TestUserId); var examService = ExamServiceMock.GetMock; examService .CanBeDownloadedByUser(true) .GetDownloadUrlAsync(FileUrl); var controller = new ExamsController( userManager.Object, cloudinaryService: null, courseService: null, examService.Object); using (controller) { // Act var result = await controller.Download(TestExamId); // Assert var redirectResult = Assert.IsType <RedirectResult>(result); Assert.Equal(FileUrl, redirectResult.Url); userManager.Verify(); examService.Verify(); } }