public void RegistrationPromptBulkPost_updates_temp_data_and_redirects_to_configure_answers() { // Given var inputViewModel = new BulkRegistrationPromptAnswersViewModel("Test\r\nAnswer", true, null); var initialPromptData = new AddRegistrationPromptSelectPromptData(1, true, "prompt"); var initialAnswersData = new RegistrationPromptAnswersTempData("Test"); var expectedAnswersData = new RegistrationPromptAnswersTempData("Test\r\nAnswer"); var initialTempData = new AddRegistrationPromptTempData { SelectPromptData = initialPromptData, ConfigureAnswersTempData = initialAnswersData, }; A.CallTo( () => multiPageFormService.GetMultiPageFormData <AddRegistrationPromptTempData>( MultiPageFormDataFeature.AddRegistrationPrompt, registrationPromptsController.TempData ) ).Returns(initialTempData); // When var result = registrationPromptsController.AddRegistrationPromptBulkPost(inputViewModel); // Then using (new AssertionScope()) { AssertMultiPageFormDataIsUpdatedCorrectly(initialPromptData, expectedAnswersData); result.Should().BeRedirectToActionResult().WithActionName("AddRegistrationPromptConfigureAnswers"); } }
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"); }
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 AddRegistrationPromptSelectPrompt_post_updates_temp_data_and_redirects() { // Given var expectedPromptData = new AddRegistrationPromptSelectPromptData(1, true, "prompt"); var initialTempData = new AddRegistrationPromptTempData(); A.CallTo( () => multiPageFormService.GetMultiPageFormData <AddRegistrationPromptTempData>( MultiPageFormDataFeature.AddRegistrationPrompt, registrationPromptsController.TempData ) ).Returns(initialTempData); A.CallTo(() => centreRegistrationPromptsService.GetCentreRegistrationPromptsAlphabeticalList()) .Returns(new List <(int id, string value)> { (1, "prompt") }); var inputViewModel = new AddRegistrationPromptSelectPromptViewModel(1, true); // When var result = registrationPromptsController.AddRegistrationPromptSelectPrompt(inputViewModel); // Then AssertMultiPageFormDataIsUpdatedCorrectly(expectedPromptData, new RegistrationPromptAnswersTempData()); result.Should().BeRedirectToActionResult().WithActionName("AddRegistrationPromptConfigureAnswers"); }
public RegistrationPromptAnswersViewModel(AddRegistrationPromptTempData tempData) { PromptName = tempData.SelectPromptData.PromptName; OptionsString = tempData.ConfigureAnswersTempData.OptionsString; Answer = tempData.ConfigureAnswersTempData.Answer; IncludeAnswersTableCaption = tempData.ConfigureAnswersTempData.IncludeAnswersTableCaption; }
public AddRegistrationPromptSummaryViewModel( AddRegistrationPromptTempData tempData, string promptName ) { PromptName = promptName; Mandatory = tempData.SelectPromptData.Mandatory ? "Yes" : "No"; Answers = NewlineSeparatedStringListHelper.SplitNewlineSeparatedList( tempData.ConfigureAnswersTempData.OptionsString ); }
public void Index_should_clear_TempData_and_go_to_index_page() { var expectedTempData = new AddRegistrationPromptTempData(); registrationPromptsController.TempData.Set(expectedTempData); // When var result = registrationPromptsController.Index(); // Then registrationPromptsController.TempData.Peek <AddRegistrationPromptTempData>().Should().BeNull(); result.Should().BeViewResult().WithDefaultViewName(); }
public void AddRegistrationPromptSelectPrompt_loads_existing_temp_data() { var expectedTempData = new AddRegistrationPromptTempData(); registrationPromptsControllerWithMockHttpContext.TempData.Set(expectedTempData); // When var result = registrationPromptsControllerWithMockHttpContext.AddRegistrationPromptSelectPrompt(); // Then registrationPromptsControllerWithMockHttpContext.TempData.Peek <AddRegistrationPromptTempData>().Should() .BeEquivalentTo(expectedTempData); result.Should().BeViewResult().WithDefaultViewName(); }
public void AddRegistrationPromptSummaryPost_calls_registration_prompt_service_and_redirects_to_index() { // Given var initialPromptData = new AddRegistrationPromptSelectPromptData(1, true, "prompt"); var initialAnswersData = new RegistrationPromptAnswersTempData("Test\r\nAnswer"); var initialTempData = new AddRegistrationPromptTempData { SelectPromptData = initialPromptData, ConfigureAnswersTempData = initialAnswersData }; A.CallTo( () => multiPageFormService.GetMultiPageFormData <AddRegistrationPromptTempData>( MultiPageFormDataFeature.AddRegistrationPrompt, registrationPromptsController.TempData ) ).Returns(initialTempData); A.CallTo( () => centreRegistrationPromptsService.AddCentreRegistrationPrompt( ControllerContextHelper.CentreId, 1, true, "Test\r\nAnswer" ) ).Returns(true); // When var result = registrationPromptsController.AddRegistrationPromptSummaryPost(); // Then using (new AssertionScope()) { A.CallTo( () => centreRegistrationPromptsService.AddCentreRegistrationPrompt( ControllerContextHelper.CentreId, 1, true, "Test\r\nAnswer" ) ).MustHaveHappened(); A.CallTo( () => multiPageFormService.ClearMultiPageFormData( MultiPageFormDataFeature.AddRegistrationPrompt, registrationPromptsController.TempData ) ).MustHaveHappenedOnceExactly(); result.Should().BeRedirectToActionResult().WithActionName("Index"); } }
AddRegistrationPromptSummaryPost_calls_registration_prompt_service_and_redirects_to_error_on_failure() { // Given var initialPromptData = new AddRegistrationPromptSelectPromptData(1, true, "prompt"); var initialAnswersData = new RegistrationPromptAnswersTempData("Test\r\nAnswer"); var initialTempData = new AddRegistrationPromptTempData { SelectPromptData = initialPromptData, ConfigureAnswersTempData = initialAnswersData }; A.CallTo( () => multiPageFormService.GetMultiPageFormData <AddRegistrationPromptTempData>( MultiPageFormDataFeature.AddRegistrationPrompt, registrationPromptsController.TempData ) ).Returns(initialTempData); A.CallTo( () => centreRegistrationPromptsService.AddCentreRegistrationPrompt( ControllerContextHelper.CentreId, 1, true, "Test\r\nAnswer" ) ).Returns(false); // When var result = registrationPromptsController.AddRegistrationPromptSummaryPost(); // Then using (new AssertionScope()) { A.CallTo( () => centreRegistrationPromptsService.AddCentreRegistrationPrompt( ControllerContextHelper.CentreId, 1, true, "Test\r\nAnswer" ) ).MustHaveHappened(); result.Should().BeStatusCodeResult().WithStatusCode(500); } }
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); } }