public async Task Courses_ShouldReturnRedirectToAction_GivenInvalidUser() { // Arrange var userManager = UserManagerMock.GetMock; userManager.GetUserId(null); var controller = new TrainersController( userManager.Object, certificateService: null, courseService: null, examService: null, trainerService: null) { TempData = TempDataMock.GetMock }; // Act var result = await controller.Courses(It.IsAny <string>(), It.IsAny <int>()); // Assert controller.TempData.AssertErrorMsg(WebConstants.InvalidUserMsg); this.AssertRedirectToCoursesControllerIndex(result); userManager.Verify(); }
public async Task EvaluateExam_ShouldReturnRedirectToAction_GivenInvalidUser() { // Arrange var courseService = CourseServiceMock.GetMock; courseService.Exists(true); var userManager = UserManagerMock.GetMock; userManager.GetUserId(null); var controller = new TrainersController( userManager.Object, certificateService: null, courseService.Object, examService: null, trainerService: null) { TempData = TempDataMock.GetMock }; // Act var result = await controller.EvaluateExam(TestCourseId, It.IsAny <StudentCourseGradeFormModel>()); // Assert controller.TempData.AssertErrorMsg(WebConstants.InvalidUserMsg); // Result this.AssertRedirectToTrainersControllerIndex(result); courseService.Verify(); userManager.Verify(); }
public async Task EvaluateExam_ShouldReturnRedirectToActionWithCorrectRouteValues_GivenModelError() { // Arrange var courseService = CourseServiceMock.GetMock; courseService.Exists(true); var controller = new TrainersController( userManager: null, certificateService: null, courseService.Object, examService: null, trainerService: null) { TempData = TempDataMock.GetMock }; controller.ModelState.AddModelError(string.Empty, "Error"); // model error // Act var result = await controller.EvaluateExam(TestCourseId, It.IsAny <StudentCourseGradeFormModel>()); // Assert controller.TempData.AssertErrorMsg(WebConstants.GradeInvalidMsg); this.AssertRedirectToTrainersControllerStudents(result); this.AssertRouteWithId(result); courseService.Verify(); }
public async Task Students_ShouldReturnRedirectToAction_GivenInvalidCourse() { // Arrange var courseService = new Mock <ICourseService>(); courseService.Exists(false); var controller = new TrainersController( userManager: null, certificateService: null, courseService.Object, examService: null, trainerService: null) { TempData = TempDataMock.GetMock }; // Act var result = await controller.Students(TestCourseId); // Assert controller.TempData.AssertErrorMsg(WebConstants.CourseNotFoundMsg); this.AssertRedirectToTrainersControllerIndex(result); courseService.Verify(); }
public async Task EvaluateExam_ShouldReturnRedirectToActionWithCorrectRouteValuesAndCertificateSuccessMsg_GivenCertificatetSuccess() { // Arrange var testModel = this.GetStudentInCourseWithGrade(); var courseService = CourseServiceMock.GetMock; courseService .Exists(true) .IsUserEnrolledInCourseAsync(true); var userManager = UserManagerMock.GetMock; userManager.GetUserId(TestUserId); var trainerService = TrainerServiceMock.GetMock; trainerService .IsTrainerForCourseAsync(true) .CourseHasEndedAsync(true); var examService = ExamServiceMock.GetMock; examService.EvaluateAsync(true); var certificateService = CertificateServiceMock.GetMock; certificateService .IsGradeEligibleForCertificate(true) .CreateAsync(true); var controller = new TrainersController( userManager.Object, certificateService.Object, courseService.Object, examService.Object, trainerService.Object) { TempData = TempDataMock.GetMock }; // Act var result = await controller.EvaluateExam(TestCourseId, testModel); // Assert controller.TempData.AssertSuccessMsg( WebConstants.ExamAssessedMsg + Environment.NewLine + WebConstants.CertificateIssuedMsg); this.AssertRedirectToTrainersControllerStudents(result); this.AssertRouteWithId(result); certificateService.Verify(); courseService.Verify(); examService.Verify(); trainerService.Verify(); userManager.Verify(); }
public async Task EvaluateExam_ShouldReturnRedirectToActionWithCorrectRouteValues_GivenAssessmentError() { // Arrange var testModel = this.GetStudentInCourseWithGrade(); var courseService = CourseServiceMock.GetMock; courseService .Exists(true) .IsUserEnrolledInCourseAsync(true); var userManager = UserManagerMock.GetMock; userManager.GetUserId(TestUserId); var trainerService = TrainerServiceMock.GetMock; trainerService .IsTrainerForCourseAsync(true) .CourseHasEndedAsync(true); var examService = ExamServiceMock.GetMock; examService.EvaluateAsync(false); var controller = new TrainersController( userManager.Object, certificateService: null, courseService.Object, examService.Object, trainerService.Object) { TempData = TempDataMock.GetMock }; // Act var result = await controller.EvaluateExam(TestCourseId, testModel); // Assert controller.TempData.AssertErrorMsg(WebConstants.ExamAssessmentErrorMsg); this.AssertRedirectToTrainersControllerStudents(result); this.AssertRouteWithId(result); courseService.Verify(); examService.Verify(); trainerService.Verify(); userManager.Verify(); }
public async Task Students_ShouldReturnViewResultWithCorrectModel_GivenValidInput() { // Arrange var testCourse = Tests.GetCourseServiceModelCollection().FirstOrDefault(); var courseService = CourseServiceMock.GetMock; courseService.Exists(true); var userManager = UserManagerMock.GetMock; userManager.GetUserId(TestUserId); var trainerService = TrainerServiceMock.GetMock; trainerService .IsTrainerForCourseAsync(true) .CourseByIdAsync(testCourse) .StudentsInCourseAsync(this.GetStudentInCourseServiceModelCollection()); var controller = new TrainersController( userManager.Object, certificateService: null, courseService.Object, examService: null, trainerService.Object); // Act var result = await controller.Students(TestCourseId); // Assert var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsType <StudentCourseGradeViewModel>(viewResult.Model); Assert.NotNull(model); Tests.AssertCourseServiceModel(testCourse, model.Course); this.AssertStudentsInCourse(model.Students); courseService.Verify(); trainerService.Verify(); userManager.Verify(); }
public async Task EvaluateExam_ShouldReturnRedirectToAction_BeforeCourseEndDate() { // Arrange var courseService = CourseServiceMock.GetMock; courseService.Exists(true); var userManager = UserManagerMock.GetMock; userManager.GetUserId(TestUserId); var trainerService = TrainerServiceMock.GetMock; trainerService .IsTrainerForCourseAsync(true) .CourseHasEndedAsync(false); var controller = new TrainersController( userManager.Object, certificateService: null, courseService.Object, examService: null, trainerService.Object) { TempData = TempDataMock.GetMock }; // Act var result = await controller.EvaluateExam(TestCourseId, It.IsAny <StudentCourseGradeFormModel>()); // Assert controller.TempData.AssertErrorMsg(WebConstants.CourseHasNotEndedMsg); this.AssertRedirectToTrainersControllerStudents(result); courseService.Verify(); trainerService.Verify(); userManager.Verify(); }
public async Task Students_ShouldReturnRedirectToAction_GivenInvalidTrainer() { // Arrange var courseService = CourseServiceMock.GetMock; courseService.Exists(true); var userManager = UserManagerMock.GetMock; userManager.GetUserId(TestUserId); var trainerService = TrainerServiceMock.GetMock; trainerService.IsTrainerForCourseAsync(false); var controller = new TrainersController( userManager.Object, certificateService: null, courseService.Object, examService: null, trainerService.Object) { TempData = TempDataMock.GetMock }; // Act var result = await controller.Students(TestCourseId); // Assert controller.TempData.AssertErrorMsg(WebConstants.NotTrainerForCourseMsg); this.AssertRedirectToTrainersControllerIndex(result); courseService.Verify(); trainerService.Verify(); userManager.Verify(); }
[InlineData(int.MaxValue)] // invalid public async Task Courses_ShouldReturnViewResultWithCorrectModel_GivenValidUser(int page) { // Arrange var testPagination = Tests.GetPaginationViewModel(page, TestTotalItems, TestSearchTerm); var userManager = UserManagerMock.GetMock; userManager.GetUserId(TestUserId); var trainerService = TrainerServiceMock.GetMock; trainerService .TotalCoursesAsync(TestTotalItems) .CoursesAsync(Tests.GetCourseServiceModelCollection()) .CoursesToEvaluateAsync(Tests.GetCourseServiceModelCollection()); var controller = new TrainersController( userManager.Object, certificateService: null, courseService: null, examService: null, trainerService.Object); // Act var result = await controller.Courses(TestSearchTerm, page); // Assert var viewResult = Assert.IsType <ViewResult>(result); var model = Assert.IsType <TrainerCoursePageListingViewModel>(viewResult.Model); this.AssertCoursePage(testPagination, model); Tests.AssertCourseServiceModelCollection(model.CoursesToEvaluate); userManager.Verify(); trainerService.Verify(); }