Ejemplo n.º 1
0
        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");
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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 }));
        }