コード例 #1
0
        public void AddRegistrationPromptConfigureAnswers_delete_removes_configured_answer()
        {
            // Given
            var initialPromptModel = new AddRegistrationPromptSelectPromptViewModel(1, true);

            var initialViewModel  = new RegistrationPromptAnswersViewModel("Test\r\nAnswer");
            var expectedViewModel = new RegistrationPromptAnswersViewModel("Answer");

            const string action = "delete0";

            var initialTempData = new AddRegistrationPromptData
            {
                SelectPromptViewModel = initialPromptModel, ConfigureAnswersViewModel = initialViewModel
            };

            registrationPromptsController.TempData.Set(initialTempData);

            // When
            var result = registrationPromptsController.AddRegistrationPromptConfigureAnswers(initialViewModel, action);

            // Then
            using (new AssertionScope())
            {
                AssertSelectPromptViewModelIsExpectedModel(initialPromptModel);
                AssertPromptAnswersViewModelIsExpectedModel(expectedViewModel);
                result.As <ViewResult>().Model.Should().BeOfType <RegistrationPromptAnswersViewModel>();
            }
        }
コード例 #2
0
        public void AddRegistrationPromptConfigureAnswers_add_configures_new_answer_and_updates_temp_data()
        {
            // Given
            var initialSelectPromptModel = new AddRegistrationPromptSelectPromptViewModel(1, true);

            var inputAnswersViewModel            = new RegistrationPromptAnswersViewModel("Test", "Answer");
            var expectedConfigureAnswerViewModel = new RegistrationPromptAnswersViewModel("Test\r\nAnswer");

            var initialTempData = new AddRegistrationPromptData
            {
                SelectPromptViewModel = initialSelectPromptModel, ConfigureAnswersViewModel = inputAnswersViewModel
            };

            registrationPromptsController.TempData.Set(initialTempData);

            const string action = "addPrompt";

            // When
            var result =
                registrationPromptsController.AddRegistrationPromptConfigureAnswers(inputAnswersViewModel, action);

            // Then
            using (new AssertionScope())
            {
                AssertSelectPromptViewModelIsExpectedModel(initialSelectPromptModel);
                AssertPromptAnswersViewModelIsExpectedModel(expectedConfigureAnswerViewModel);
                result.As <ViewResult>().Model.Should().BeOfType <RegistrationPromptAnswersViewModel>();
            }
        }
コード例 #3
0
        AddRegistrationPromptConfigureAnswers_adds_correct_model_error_if_new_answer_surpasses_character_limit(
            string optionsString,
            string newAnswerInput,
            string expectedErrorMessage
            )
        {
            // Given
            var initialSelectPromptModel = new AddRegistrationPromptSelectPromptViewModel(1, true);

            var inputAnswersViewModel = new RegistrationPromptAnswersViewModel(optionsString, newAnswerInput);

            var initialTempData = new AddRegistrationPromptData
            {
                SelectPromptViewModel = initialSelectPromptModel, ConfigureAnswersViewModel = inputAnswersViewModel
            };

            registrationPromptsController.TempData.Set(initialTempData);

            const string action = "addPrompt";

            // When
            var result =
                registrationPromptsController.AddRegistrationPromptConfigureAnswers(inputAnswersViewModel, action);

            // Then
            using (new AssertionScope())
            {
                result.As <ViewResult>().Model.Should().BeOfType <RegistrationPromptAnswersViewModel>();
                AssertModelStateErrorIsExpected(result, expectedErrorMessage);
            }
        }
        public void AddRegistrationPromptConfigureAnswers_delete_removes_configured_answer()
        {
            // Given
            var initialPromptData = new AddRegistrationPromptSelectPromptData(1, true, "prompt");

            var initialAnswersData  = new RegistrationPromptAnswersTempData("Test\r\nAnswer");
            var expectedAnswersData = new RegistrationPromptAnswersTempData("Answer");

            const string action = "delete0";

            var initialTempData = new AddRegistrationPromptTempData
            {
                SelectPromptData = initialPromptData, ConfigureAnswersTempData = initialAnswersData
            };

            A.CallTo(
                () => multiPageFormService.GetMultiPageFormData <AddRegistrationPromptTempData>(
                    MultiPageFormDataFeature.AddRegistrationPrompt,
                    registrationPromptsController.TempData
                    )
                ).Returns(initialTempData);
            var inputViewModel = new RegistrationPromptAnswersViewModel("Test\r\nAnswer");

            // When
            var result = registrationPromptsController.AddRegistrationPromptConfigureAnswers(inputViewModel, action);

            // Then
            using (new AssertionScope())
            {
                AssertMultiPageFormDataIsUpdatedCorrectly(initialPromptData, expectedAnswersData);
                result.As <ViewResult>().Model.Should().BeOfType <RegistrationPromptAnswersViewModel>();
            }
        }
        public void AddRegistrationPromptConfigureAnswers_next_updates_temp_data()
        {
            // Given
            var expectedPromptData = new AddRegistrationPromptSelectPromptData(1, true, "prompt");
            var initialTempData    = new AddRegistrationPromptTempData {
                SelectPromptData = expectedPromptData
            };

            A.CallTo(
                () => multiPageFormService.GetMultiPageFormData <AddRegistrationPromptTempData>(
                    MultiPageFormDataFeature.AddRegistrationPrompt,
                    registrationPromptsController.TempData
                    )
                ).Returns(initialTempData);
            var          expectedAnswerData = new RegistrationPromptAnswersTempData("Test");
            var          inputViewModel     = new RegistrationPromptAnswersViewModel("Test");
            const string action             = "next";

            // When
            var result =
                registrationPromptsController.AddRegistrationPromptConfigureAnswers(inputViewModel, action);

            // Then
            AssertMultiPageFormDataIsUpdatedCorrectly(expectedPromptData, expectedAnswerData);
            result.Should().BeRedirectToActionResult().WithActionName("AddRegistrationPromptSummary");
        }
コード例 #6
0
        public void AddRegistrationPromptConfigureAnswers_returns_error_with_unexpected_action()
        {
            // Given
            var          model  = new RegistrationPromptAnswersViewModel("Test\r\nAnswer", "Answer");
            const string action = "deletetest";

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

            // Then
            result.Should().BeStatusCodeResult().WithStatusCode(500);
        }
コード例 #7
0
        public void OptionsStringContainsDuplicates_detects_duplicates_in_options_string(
            string optionsString,
            bool expectedResult
            )
        {
            // Given
            var model = new RegistrationPromptAnswersViewModel(optionsString);

            // When
            var result = model.OptionsStringContainsDuplicates();

            // Then
            result.Should().Be(expectedResult);
        }
コード例 #8
0
        public void AddRegistrationPromptConfigureAnswers_next_updates_temp_data()
        {
            // Given
            var expectedPromptModel = new AddRegistrationPromptSelectPromptViewModel(1, true);
            var initialTempData     = new AddRegistrationPromptData {
                SelectPromptViewModel = expectedPromptModel
            };

            registrationPromptsController.TempData.Set(initialTempData);
            var          expectedAnswerModel = new RegistrationPromptAnswersViewModel("Test");
            const string action = "next";

            // When
            var result =
                registrationPromptsController.AddRegistrationPromptConfigureAnswers(expectedAnswerModel, action);

            // Then
            AssertSelectPromptViewModelIsExpectedModel(expectedPromptModel);
            AssertPromptAnswersViewModelIsExpectedModel(expectedAnswerModel);
            result.Should().BeRedirectToActionResult().WithActionName("AddRegistrationPromptSummary");
        }
コード例 #9
0
        public void AddRegistrationPromptSummary_calls_custom_prompt_service_and_redirects_to_index()
        {
            // Given
            var initialPromptModel = new AddRegistrationPromptSelectPromptViewModel(1, true);
            var initialViewModel   = new RegistrationPromptAnswersViewModel("Test\r\nAnswer");
            var initialTempData    = new AddRegistrationPromptData
            {
                SelectPromptViewModel = initialPromptModel, ConfigureAnswersViewModel = initialViewModel
            };

            registrationPromptsController.TempData.Set(initialTempData);
            A.CallTo(
                () => centreCustomPromptsService.AddCustomPromptToCentre(
                    ControllerContextHelper.CentreId,
                    1,
                    true,
                    "Test\r\nAnswer"
                    )
                ).Returns(true);

            // When
            var result = registrationPromptsController.AddRegistrationPromptSummaryPost();

            // Then
            using (new AssertionScope())
            {
                A.CallTo(
                    () => centreCustomPromptsService.AddCustomPromptToCentre(
                        ControllerContextHelper.CentreId,
                        1,
                        true,
                        "Test\r\nAnswer"
                        )
                    ).MustHaveHappened();
                registrationPromptsController.TempData.Peek <AddRegistrationPromptData>().Should().BeNull();
                result.Should().BeRedirectToActionResult().WithActionName("Index");
            }
        }
        AddRegistrationPromptConfigureAnswers_adds_correct_model_error_if_new_answer_surpasses_character_limit(
            string optionsString,
            string newAnswerInput,
            string expectedErrorMessage
            )
        {
            // Given
            var initialSelectPromptData = new AddRegistrationPromptSelectPromptData(1, true, "prompt");

            var initialAnswersData = new RegistrationPromptAnswersTempData(optionsString, newAnswerInput);

            var initialTempData = new AddRegistrationPromptTempData
            {
                SelectPromptData = initialSelectPromptData, ConfigureAnswersTempData = initialAnswersData
            };

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

            const string action = "addPrompt";
            var          inputAnswersViewModel = new RegistrationPromptAnswersViewModel(optionsString, newAnswerInput);

            // When
            var result =
                registrationPromptsController.AddRegistrationPromptConfigureAnswers(inputAnswersViewModel, action);

            // Then
            using (new AssertionScope())
            {
                result.As <ViewResult>().Model.Should().BeOfType <RegistrationPromptAnswersViewModel>();
                AssertModelStateErrorIsExpected(result, expectedErrorMessage);
            }
        }
コード例 #11
0
 private void AssertPromptAnswersViewModelIsExpectedModel(RegistrationPromptAnswersViewModel promptModel)
 {
     registrationPromptsController.TempData.Peek <AddRegistrationPromptData>() !.ConfigureAnswersViewModel.Should()
     .BeEquivalentTo(promptModel);
 }
 public static RegistrationPromptAnswersTempData ToDataConfigureAnswersTempData(this RegistrationPromptAnswersViewModel model)
 {
     return(new RegistrationPromptAnswersTempData(
                model.OptionsString,
                model.Answer,
                model.IncludeAnswersTableCaption
                ));
 }
コード例 #13
0
 public AddRegistrationPromptData()
 {
     Id = Guid.NewGuid();
     SelectPromptViewModel     = new AddRegistrationPromptSelectPromptViewModel();
     ConfigureAnswersViewModel = new RegistrationPromptAnswersViewModel();
 }