public void PostEditRegistrationPrompt_bulk_sets_up_temp_data_and_redirects()
        {
            // Given
            var          model  = new EditRegistrationPromptViewModel(1, "Test", false, "Test\r\nAnswer", "Answer");
            const string action = "bulk";

            // When
            var result = registrationPromptsController.EditRegistrationPrompt(model, action);

            // Then
            using (new AssertionScope())
            {
                A.CallTo(
                    () => multiPageFormService.SetMultiPageFormData(
                        A <EditRegistrationPromptTempData> .That.Matches(
                            d => d.PromptNumber == model.PromptNumber &&
                            d.Prompt == model.Prompt &&
                            d.Mandatory == model.Mandatory &&
                            d.Answer == model.Answer &&
                            d.IncludeAnswersTableCaption == model.IncludeAnswersTableCaption &&
                            d.OptionsString == model.OptionsString
                            ),
                        MultiPageFormDataFeature.EditRegistrationPrompt,
                        registrationPromptsController.TempData
                        )
                    ).MustHaveHappenedOnceExactly();
                result.Should().BeRedirectToActionResult().WithActionName("EditRegistrationPromptBulk");
            }
        }
Esempio n. 2
0
        public void PostEditRegistrationPrompt_save_calls_correct_methods()
        {
            // Given
            var          model  = new EditRegistrationPromptViewModel(1, "Test", false, "Test");
            const string action = "save";

            A.CallTo(
                () => centreCustomPromptsService.UpdateCustomPromptForCentre(
                    ControllerContextHelper.CentreId,
                    1,
                    false,
                    "Test"
                    )
                ).DoesNothing();

            // When
            var result = registrationPromptsController.EditRegistrationPrompt(model, action);

            // Then
            A.CallTo(
                () => centreCustomPromptsService.UpdateCustomPromptForCentre(
                    ControllerContextHelper.CentreId,
                    1,
                    false,
                    "Test"
                    )
                ).MustHaveHappened();
            result.Should().BeRedirectToActionResult().WithActionName("Index");
        }
Esempio n. 3
0
        public void PostEditRegistrationPrompt_returns_error_with_unexpected_action()
        {
            // Given
            var          model  = new EditRegistrationPromptViewModel(1, "Test", false, "Test\r\nAnswer", "Answer");
            const string action = "deletetest";

            // When
            var result = registrationPromptsController.EditRegistrationPrompt(model, action);

            // Then
            result.Should().BeStatusCodeResult().WithStatusCode(500);
        }
Esempio n. 4
0
        public void PostEditRegistrationPrompt_delete_removes_configured_answer()
        {
            // Given
            var          model  = new EditRegistrationPromptViewModel(1, "Test", false, "Test\r\nAnswer", "Answer");
            const string action = "delete0";

            // When
            var result = registrationPromptsController.EditRegistrationPrompt(model, action);

            // Then
            result.As <ViewResult>().Model.Should().BeOfType <EditRegistrationPromptViewModel>().Which.OptionsString
            .Should().BeEquivalentTo("Answer");
        }
Esempio n. 5
0
        public IActionResult EditRegistrationPrompt(EditRegistrationPromptViewModel model, string action)
        {
            if (action.StartsWith(DeleteAction) && TryGetAnswerIndexFromDeleteAction(action, out var index))
            {
                return(RegistrationPromptAnswersPostRemovePrompt(model, index));
            }

            return(action switch
            {
                SaveAction => EditRegistrationPromptPostSave(model),
                AddPromptAction => RegistrationPromptAnswersPostAddPrompt(model),
                BulkAction => EditRegistrationPromptBulk(model),
                _ => new StatusCodeResult(500),
            });
Esempio n. 6
0
        public void PostEditRegistrationPrompt_bulk_sets_up_temp_data_and_redirects()
        {
            // Given
            var          model  = new EditRegistrationPromptViewModel(1, "Test", false, "Test\r\nAnswer", "Answer");
            const string action = "bulk";

            // When
            var result = registrationPromptsController.EditRegistrationPrompt(model, action);

            // Then
            using (new AssertionScope())
            {
                AssertEditTempDataIsExpected(model);
                result.Should().BeRedirectToActionResult().WithActionName("EditRegistrationPromptBulk");
            }
        }
        public void RegistrationPromptBulkPost_updates_temp_data_and_redirects_to_edit()
        {
            // Given
            var inputViewModel       = new BulkRegistrationPromptAnswersViewModel("Test\r\nAnswer", false, 1);
            var initialEditViewModel = new EditRegistrationPromptViewModel(1, "Prompt", false, "Test");
            var initialTempData      = new EditRegistrationPromptTempData
            {
                PromptNumber  = initialEditViewModel.PromptNumber,
                Prompt        = initialEditViewModel.Prompt,
                Mandatory     = initialEditViewModel.Mandatory,
                OptionsString = initialEditViewModel.OptionsString,
                Answer        = initialEditViewModel.Answer,
                IncludeAnswersTableCaption = initialEditViewModel.IncludeAnswersTableCaption,
            };

            A.CallTo(
                () => multiPageFormService.GetMultiPageFormData <EditRegistrationPromptTempData>(
                    MultiPageFormDataFeature.EditRegistrationPrompt,
                    registrationPromptsController.TempData
                    )
                ).Returns(initialTempData);

            // When
            var result = registrationPromptsController.EditRegistrationPromptBulkPost(inputViewModel);

            // Then
            using (new AssertionScope())
            {
                A.CallTo(
                    () => multiPageFormService.SetMultiPageFormData(
                        A <EditRegistrationPromptTempData> .That.Matches(
                            d => d.PromptNumber == initialTempData.PromptNumber &&
                            d.Prompt == initialTempData.Prompt &&
                            d.Mandatory == initialTempData.Mandatory &&
                            d.Answer == initialTempData.Answer &&
                            d.IncludeAnswersTableCaption == initialTempData.IncludeAnswersTableCaption &&
                            d.OptionsString == inputViewModel.OptionsString
                            ),
                        MultiPageFormDataFeature.EditRegistrationPrompt,
                        registrationPromptsController.TempData
                        )
                    ).MustHaveHappenedOnceExactly();
                result.Should().BeRedirectToActionResult().WithActionName("EditRegistrationPrompt");
            }
        }
Esempio n. 8
0
        public void RegistrationPromptBulkPost_updates_temp_data_and_redirects_to_edit()
        {
            // Given
            var inputViewModel       = new BulkRegistrationPromptAnswersViewModel("Test\r\nAnswer", false, 1);
            var initialEditViewModel = new EditRegistrationPromptViewModel(1, "Prompt", false, "Test");
            var expectedViewModel    = new EditRegistrationPromptViewModel(1, "Prompt", false, "Test\r\nAnswer");
            var initialTempData      = new EditRegistrationPromptData(initialEditViewModel);

            registrationPromptsController.TempData.Set(initialTempData);

            // When
            var result = registrationPromptsController.EditRegistrationPromptBulkPost(inputViewModel);

            // Then
            using (new AssertionScope())
            {
                AssertEditTempDataIsExpected(expectedViewModel);
                result.Should().BeRedirectToActionResult().WithActionName("EditRegistrationPrompt");
            }
        }
Esempio n. 9
0
        public void PostEditRegistrationPrompt_add_configures_new_answer()
        {
            // Given
            var          model  = new EditRegistrationPromptViewModel(1, "Test", false, "Test", "Answer");
            const string action = "addPrompt";

            A.CallTo(
                () => centreCustomPromptsService.UpdateCustomPromptForCentre(
                    ControllerContextHelper.CentreId,
                    1,
                    false,
                    "Test"
                    )
                ).DoesNothing();

            // When
            var result = registrationPromptsController.EditRegistrationPrompt(model, action);

            // Then
            result.As <ViewResult>().Model.Should().BeOfType <EditRegistrationPromptViewModel>().Which.OptionsString
            .Should().BeEquivalentTo("Test\r\nAnswer");
        }
Esempio n. 10
0
 public EditRegistrationPromptData(EditRegistrationPromptViewModel model)
 {
     Id        = Guid.NewGuid();
     EditModel = model;
 }
Esempio n. 11
0
 private void AssertEditTempDataIsExpected(EditRegistrationPromptViewModel expectedData)
 {
     registrationPromptsController.TempData.Peek <EditRegistrationPromptData>() !.EditModel.Should()
     .BeEquivalentTo(expectedData);
 }
 public static EditRegistrationPromptTempData ToEditRegistrationPromptTempData(this EditRegistrationPromptViewModel model)
 {
     return(new EditRegistrationPromptTempData
     {
         PromptNumber = model.PromptNumber,
         Prompt = model.Prompt,
         Mandatory = model.Mandatory,
         OptionsString = model.OptionsString,
         Answer = model.Answer,
         IncludeAnswersTableCaption = model.IncludeAnswersTableCaption,
     });
 }