SetSelfAssessmentCompleteByDate_post_action_invalid_complete_by_date_should_not_call_the_course_service()
        {
            // Given
            const int selfAssessmentId = 1;
            const int day      = 1;
            const int month    = 1;
            const int year     = 2020;
            var       formData = new EditCompleteByDateFormData {
                Day = day, Month = month, Year = year
            };

            controller.ModelState.AddModelError("year", "message");
            var selfAssessment = SelfAssessmentHelper.CreateDefaultSelfAssessment();

            A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(CandidateId, SelfAssessmentId))
            .Returns(selfAssessment);

            // When
            controller.SetSelfAssessmentCompleteByDate(selfAssessmentId, formData);

            // Then
            A.CallTo(
                () => selfAssessmentService.SetCompleteByDate(selfAssessmentId, CandidateId, A <DateTime> ._)
                ).MustNotHaveHappened();
        }
        public void EditCompleteByDatePost_redirects_to_correct_action(
            DelegateAccessRoute accessedVia,
            string expectedController,
            string expectedAction
            )
        {
            // Given
            var formData = new EditCompleteByDateFormData
            {
                Day             = 1,
                Month           = 1,
                Year            = 2021,
                ReturnPageQuery = ReturnPageQueryHelper.GetDefaultReturnPageQuery(itemIdToReturnTo: CardId),
            };

            A.CallTo(() => progressService.UpdateCompleteByDate(ProgressId, A <DateTime?> ._)).DoesNothing();

            // When
            var result = delegateProgressController.EditCompleteByDate(formData, ProgressId, accessedVia);

            // Then
            var expectedFragment = accessedVia.Equals(DelegateAccessRoute.CourseDelegates) ? CardId : null;

            result.Should().BeRedirectToActionResult().WithControllerName(expectedController)
            .WithActionName(expectedAction).WithFragment(expectedFragment);
        }
Exemple #3
0
        public IActionResult SetSelfAssessmentCompleteByDate(int selfAssessmentId, EditCompleteByDateFormData formData)
        {
            var candidateId = User.GetCandidateIdKnownNotNull();
            var assessment  = selfAssessmentService.GetSelfAssessmentForCandidateById(
                candidateId,
                selfAssessmentId
                );

            if (assessment is { Id : 0 })
Exemple #4
0
        public void Setting_an_empty_complete_by_date_for_course_should_call_the_course_service_with_null()
        {
            // Given
            const int id         = 1;
            const int progressId = 1;
            var       formData   = new EditCompleteByDateFormData {
                Day = null, Month = null, Year = null
            };

            // When
            controller.SetCurrentCourseCompleteByDate(id, progressId, formData);

            // Then
            A.CallTo(() => courseDataService.SetCompleteByDate(progressId, CandidateId, null)).MustHaveHappened();
        }
Exemple #5
0
        public void Setting_a_valid_complete_by_date_should_redirect_to_current_courses()
        {
            // Given
            const int id         = 1;
            const int progressId = 1;
            const int day        = 29;
            const int month      = 7;
            const int year       = 3020;
            var       formData   = new EditCompleteByDateFormData {
                Day = day, Month = month, Year = year
            };

            // When
            var result = (RedirectToActionResult)controller.SetCurrentCourseCompleteByDate(id, progressId, formData);

            // Then
            result.ActionName.Should().Be("Current");
        }
Exemple #6
0
        public IActionResult SetCurrentActionPlanResourceCompleteByDate(
            int learningLogItemId,
            EditCompleteByDateFormData formData
            )
        {
            if (!ModelState.IsValid)
            {
                var model = new EditCompleteByDateViewModel(formData, learningLogItemId);
                return(View("Current/SetCompleteByDate", model));
            }

            var completeByDate = DateValidator.IsDateNull(formData.Day, formData.Month, formData.Year)
                ? (DateTime?)null
                : new DateTime(formData.Year !.Value, formData.Month !.Value, formData.Day !.Value);

            actionPlanService.SetCompleteByDate(learningLogItemId, completeByDate);
            return(RedirectToAction("Current"));
        }
Exemple #7
0
        public IActionResult EditCompleteByDate(
            EditCompleteByDateFormData formData,
            int progressId,
            DelegateProgressAccessRoute accessedVia
            )
        {
            if (!ModelState.IsValid)
            {
                var model = new EditCompleteByDateViewModel(formData, progressId, accessedVia);
                return(View(model));
            }

            var completeByDate = formData.Year != null ? new DateTime(formData.Year.Value, formData.Month !.Value, formData.Day !.Value) : (DateTime?)null;

            progressService.UpdateCompleteByDate(progressId, completeByDate);

            return(RedirectToPreviousPage(formData.DelegateId, progressId, accessedVia));
        }
Exemple #8
0
        public IActionResult SetCurrentCourseCompleteByDate(
            int id,
            int progressId,
            EditCompleteByDateFormData formData
            )
        {
            if (!ModelState.IsValid)
            {
                var model = new EditCompleteByDateViewModel(formData, id, progressId);
                return(View("Current/SetCompleteByDate", model));
            }

            var completeByDate = DateValidator.IsDateNull(formData.Day, formData.Month, formData.Year)
                ? (DateTime?)null
                : new DateTime(formData.Year !.Value, formData.Month !.Value, formData.Day !.Value);

            courseDataService.SetCompleteByDate(progressId, User.GetCandidateIdKnownNotNull(), completeByDate);
            return(RedirectToAction("Current"));
        }
Exemple #9
0
        public void Setting_an_invalid_complete_by_date_for_course_should_not_call_the_course_service()
        {
            // Given
            const int id         = 1;
            const int progressId = 1;
            const int day        = 1;
            const int month      = 1;
            const int year       = 2020;
            var       formData   = new EditCompleteByDateFormData {
                Day = day, Month = month, Year = year
            };

            controller.ModelState.AddModelError("year", "message");

            // When
            controller.SetCurrentCourseCompleteByDate(id, progressId, formData);

            // Then
            A.CallTo(() => courseDataService.SetCompleteByDate(1, CandidateId, A <DateTime> ._)).MustNotHaveHappened();
        }
Exemple #10
0
        public void Setting_a_valid_complete_by_date_for_course_should_call_the_course_service()
        {
            // Given
            const int id         = 1;
            const int progressId = 1;
            const int newDay     = 29;
            const int newMonth   = 7;
            const int newYear    = 3020;
            var       formData   = new EditCompleteByDateFormData {
                Day = newDay, Month = newMonth, Year = newYear
            };

            var newDate = new DateTime(newYear, newMonth, newDay);

            // When
            controller.SetCurrentCourseCompleteByDate(id, progressId, formData);

            // Then
            A.CallTo(() => courseDataService.SetCompleteByDate(progressId, CandidateId, newDate)).MustHaveHappened();
        }
        public void SetSelfAssessmentCompleteByDate_post_action_empty_complete_by_date_should_call_the_course_service()
        {
            // Given
            const int selfAssessmentId = 1;
            var       formData         = new EditCompleteByDateFormData {
                Day = null, Month = null, Year = null
            };
            var selfAssessment = SelfAssessmentHelper.CreateDefaultSelfAssessment();

            A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(CandidateId, SelfAssessmentId))
            .Returns(selfAssessment);

            // When
            controller.SetSelfAssessmentCompleteByDate(selfAssessmentId, formData);

            // Then
            A.CallTo(
                () => selfAssessmentService.SetCompleteByDate(selfAssessmentId, CandidateId, null)
                ).MustHaveHappened();
        }
Exemple #12
0
        public void EditCompleteByDatePost_redirects_to_correct_action(
            DelegateProgressAccessRoute accessedVia,
            string expectedController,
            string expectedAction
            )
        {
            // Given
            const int progressId = 1;
            var       formData   = new EditCompleteByDateFormData {
                Day = 1, Month = 1, Year = 2021
            };

            A.CallTo(() => progressService.UpdateCompleteByDate(progressId, A <DateTime?> ._)).DoesNothing();

            // When
            var result = delegateProgressController.EditCompleteByDate(formData, progressId, accessedVia);

            // Then
            result.Should().BeRedirectToActionResult().WithControllerName(expectedController)
            .WithActionName(expectedAction);
        }
        SetSelfAssessmentCompleteByDate_post_action_valid_complete_by_date_should_redirect_to_current_courses()
        {
            // Given
            const int selfAssessmentId = 1;
            const int day      = 29;
            const int month    = 7;
            const int year     = 3020;
            var       formData = new EditCompleteByDateFormData {
                Day = day, Month = month, Year = year
            };
            var selfAssessment = SelfAssessmentHelper.CreateDefaultSelfAssessment();

            A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(CandidateId, SelfAssessmentId))
            .Returns(selfAssessment);

            // When
            var result = (RedirectToActionResult)controller.SetSelfAssessmentCompleteByDate(selfAssessmentId, formData);

            // Then
            result.ActionName.Should().Be("Current");
        }
        public void SetSelfAssessmentCompleteByDate_get_action_without_self_assessment_should_return_403()
        {
            // Given
            const int day      = 2;
            const int month    = 2;
            const int year     = 2020;
            var       formData = new EditCompleteByDateFormData {
                Day = day, Month = month, Year = year
            };

            A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(CandidateId, SelfAssessmentId))
            .Returns(null);

            // When
            var result = controller.SetSelfAssessmentCompleteByDate(999, formData);

            // Then
            result.Should()
            .BeRedirectToActionResult()
            .WithControllerName("LearningSolutions")
            .WithActionName("StatusCode")
            .WithRouteValue("code", 403);
        }
        public void SetSelfAssessmentCompleteByDate_post_action_valid_complete_by_date_should_call_the_course_service()
        {
            // Given
            const int selfAssessmentId = 1;
            const int newDay           = 29;
            const int newMonth         = 7;
            const int newYear          = 3020;
            var       newDate          = new DateTime(newYear, newMonth, newDay);
            var       formData         = new EditCompleteByDateFormData {
                Day = newDay, Month = newMonth, Year = newYear
            };
            var selfAssessment = SelfAssessmentHelper.CreateDefaultSelfAssessment();

            A.CallTo(() => selfAssessmentService.GetSelfAssessmentForCandidateById(CandidateId, SelfAssessmentId))
            .Returns(selfAssessment);

            // When
            controller.SetSelfAssessmentCompleteByDate(selfAssessmentId, formData);

            // Then
            A.CallTo(
                () => selfAssessmentService.SetCompleteByDate(selfAssessmentId, CandidateId, newDate)
                ).MustHaveHappened();
        }