Beispiel #1
0
        SaveLearningPathwayDefaults_does_not_call_service_with_invalid_model()
        {
            // Given
            var model = new EditLearningPathwayDefaultsViewModel(1, "49", "12", false, false);

            controller.ModelState.AddModelError("CompleteWithinMonths", "Enter a whole number from 0 to 48");

            // When
            var result = controller.EditLearningPathwayDefaults(1, model);

            // Then
            A.CallTo(
                () => courseService.UpdateLearningPathwayDefaultsForCourse(
                    A <int> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._,
                    A <bool> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._
                    )
                ).MustNotHaveHappened();
            result.Should().BeViewResult().ModelAs <EditLearningPathwayDefaultsViewModel>();
            controller.ModelState.IsValid.Should().BeFalse();
        }
        public IActionResult EditLearningPathwayDefaults(
            int customisationId,
            EditLearningPathwayDefaultsViewModel model
            )
        {
            if (customisationId != model.CustomisationId)
            {
                return(new StatusCodeResult(500));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.AutoRefresh)
            {
                SetEditLearningPathwayDefaultsTempData(model);

                return(RedirectToAction("EditAutoRefreshOptions", new { customisationId = model.CustomisationId }));
            }

            var completeWithinMonthsInt = GetIntegerFromStringOrConvertToZeroIfNull(model.CompleteWithinMonths);
            var validityMonthsInt       = GetIntegerFromStringOrConvertToZeroIfNull(model.ValidityMonths);

            courseService.UpdateLearningPathwayDefaultsForCourse(
                model.CustomisationId,
                completeWithinMonthsInt,
                validityMonthsInt,
                model.Mandatory,
                model.AutoRefresh
                );

            return(RedirectToAction("Index", new { customisationId = model.CustomisationId }));
        }
Beispiel #3
0
        public void SaveAutoRefreshOptions_does_not_call_service_with_invalid_model()
        {
            // Given
            var learningPathwayModel = new EditLearningPathwayDefaultsViewModel(1, "6", "12", false, false);
            var autoRefreshModel     = GetEditAutoRefreshOptionsViewModel(autoRefreshMonths: 13);

            controller.ModelState.AddModelError("AutoRefreshMonths", "Enter a whole number from 0 to 12");

            var learningPathwayData = new EditLearningPathwayDefaultsData(learningPathwayModel);

            controller.TempData.Set(learningPathwayData);

            var courseOptions = new List <(int, string)> {
                (1, "courseName")
            };

            A.CallTo(() => courseService.GetCourseOptionsAlphabeticalListForCentre(A <int> ._, A <int> ._))
            .Returns(courseOptions);

            A.CallTo(
                () => courseService.UpdateLearningPathwayDefaultsForCourse(
                    A <int> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._,
                    A <bool> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._
                    )
                ).DoesNothing();
            controller.ModelState.AddModelError("RefreshToCustomisationId", "Select a course");

            // When
            var result = controller.EditAutoRefreshOptions(1, autoRefreshModel);

            // Then
            A.CallTo(
                () => courseService.UpdateLearningPathwayDefaultsForCourse(
                    A <int> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._,
                    A <bool> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._
                    )
                ).MustNotHaveHappened();
            result.Should().BeViewResult().ModelAs <EditAutoRefreshOptionsViewModel>();
            controller.ModelState.IsValid.Should().BeFalse();
        }
Beispiel #4
0
        public void SaveAutoRefreshOptions_saves_if_number_input_is_null()
        {
            // Given
            var learningPathwayModel = new EditLearningPathwayDefaultsViewModel(1, "6", "12", false, false);
            var autoRefreshModel     = GetEditAutoRefreshOptionsViewModel(autoRefreshMonths: null);

            var learningPathwayData = new EditLearningPathwayDefaultsData(learningPathwayModel);

            controller.TempData.Set(learningPathwayData);

            var courseOptions = new List <(int, string)> {
                (1, "courseName")
            };

            A.CallTo(() => courseService.GetCourseOptionsAlphabeticalListForCentre(A <int> ._, A <int> ._))
            .Returns(courseOptions);

            A.CallTo(
                () => courseService.UpdateLearningPathwayDefaultsForCourse(
                    A <int> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._,
                    A <bool> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._
                    )
                ).DoesNothing();

            // When
            var result = controller.EditAutoRefreshOptions(1, autoRefreshModel);

            // Then
            A.CallTo(
                () => courseService.UpdateLearningPathwayDefaultsForCourse(
                    1,
                    6,
                    12,
                    false,
                    false,
                    1,
                    0,
                    true
                    )
                ).MustHaveHappened();
            result.Should().BeRedirectToActionResult().WithActionName("Index");
        }
Beispiel #5
0
        public void AddAdminField_post_updates_temp_data_and_redirects()
        {
            // Given
            var initialEditViewModel = new EditLearningPathwayDefaultsViewModel(1, "0", "0", false, false);
            var initialTempData      = new EditLearningPathwayDefaultsData(initialEditViewModel);
            var inputViewModel       = new EditLearningPathwayDefaultsViewModel(1, "12", "3", true, true);

            controller.TempData.Set(initialTempData);

            // When
            var result = controller.EditLearningPathwayDefaults(1, inputViewModel);

            // Then
            using (new AssertionScope())
            {
                controller.TempData.Peek <EditLearningPathwayDefaultsData>() !.LearningPathwayDefaultsModel.Should()
                .BeEquivalentTo(inputViewModel);
                result.Should().BeRedirectToActionResult().WithActionName("EditAutoRefreshOptions");
            }
        }
Beispiel #6
0
        public void SaveLearningPathwayDefaults_saves_if_number_input_is_null()
        {
            // Given
            var model = new EditLearningPathwayDefaultsViewModel(1, null, null, false, false);

            // When
            var result = controller.EditLearningPathwayDefaults(1, model);

            // Then
            A.CallTo(
                () => courseService.UpdateLearningPathwayDefaultsForCourse(
                    1,
                    0,
                    0,
                    false,
                    false,
                    0,
                    0,
                    false
                    )
                ).MustHaveHappened();
            result.Should().BeRedirectToActionResult().WithActionName("Index");
        }
Beispiel #7
0
        public void SaveLearningPathwayDefaults_save_calls_correct_method()
        {
            // Given
            var model = new EditLearningPathwayDefaultsViewModel(1, "6", "12", false, false);

            A.CallTo(
                () => courseService.UpdateLearningPathwayDefaultsForCourse(
                    A <int> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._,
                    A <bool> ._,
                    A <int> ._,
                    A <int> ._,
                    A <bool> ._
                    )
                ).DoesNothing();

            // When
            var result = controller.EditLearningPathwayDefaults(1, model);

            // Then
            A.CallTo(
                () => courseService.UpdateLearningPathwayDefaultsForCourse(
                    1,
                    6,
                    12,
                    false,
                    false,
                    0,
                    0,
                    false
                    )
                ).MustHaveHappened();
            result.Should().BeRedirectToActionResult().WithActionName("Index");
        }
        private void SetEditLearningPathwayDefaultsTempData(EditLearningPathwayDefaultsViewModel model)
        {
            var data = new EditLearningPathwayDefaultsData(model);

            TempData.Set(data);
        }
 public EditLearningPathwayDefaultsData(EditLearningPathwayDefaultsViewModel model)
 {
     Id = Guid.NewGuid();
     LearningPathwayDefaultsModel = model;
 }