public void RemoveGroupCourseViewModel_Validate_returns_error_when_confirm_is_false() { // Given var model = new RemoveGroupCourseViewModel(); // When var result = model.Validate(new ValidationContext(model)).ToList(); // Then result.Should().NotBeEmpty(); result.ElementAt(0).ErrorMessage.Should().Be("Confirm you wish to remove this course"); }
public void RemoveGroupCourseViewModel_Validate_does_not_return_error_when_confirm_is_true() { // Given var model = new RemoveGroupCourseViewModel { Confirm = true, }; // When var result = model.Validate(new ValidationContext(model)); // Then result.Should().BeEmpty(); }
public void RemoveGroupCourseViewModel_Constructor_CorrectlySetsProperties() { // Given var courseId = 1; var courseName = "Test Course"; var groupName = "Test Group"; // When var result = new RemoveGroupCourseViewModel(courseId, courseName, groupName); // Then result.GroupCourseId.Should().Be(1); result.CourseName.Should().Be("Test Course"); result.GroupName.Should().Be("Test Group"); }
public void RemoveGroupCourse_with_invalid_model_returns_view_with_error() { // Given var groupId = 1; var groupCustomisationId = 25; var model = new RemoveGroupCourseViewModel(); delegateGroupsController.ModelState.AddModelError("Confirm", "Is Invalid."); // When var result = delegateGroupsController.RemoveGroupCourse(groupId, groupCustomisationId, model); // Then result.Should().BeViewResult().WithDefaultViewName(); delegateGroupsController.ModelState.IsValid.Should().BeFalse(); A.CallTo(() => groupsService.RemoveGroupCourseAndRelatedProgress(A <int> ._, A <int> ._, A <bool> ._)) .MustNotHaveHappened(); }
public void RemoveGroupCourse_with_valid_model_calls_remove_service_and_redirects() { // Given var groupId = 1; var groupCustomisationId = 25; var model = new RemoveGroupCourseViewModel { Confirm = true, }; // When var result = delegateGroupsController.RemoveGroupCourse(groupId, groupCustomisationId, model); // Then A.CallTo(() => groupsService.RemoveGroupCourseAndRelatedProgress(groupCustomisationId, groupId, false)) .MustHaveHappenedOnceExactly(); result.Should().BeRedirectToActionResult() .WithActionName("GroupCourses") .WithRouteValue("groupId", groupId); }
public IActionResult RemoveGroupCourse(int groupId, int groupCustomisationId, RemoveGroupCourseViewModel model) { if (!ModelState.IsValid) { return(View(model)); } groupsService.RemoveGroupCourseAndRelatedProgress( groupCustomisationId, groupId, model.DeleteStartedEnrolments ); return(RedirectToAction(nameof(Index), new { groupId, page = model.ReturnPageQuery.PageNumber })); }