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 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 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 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); } }
private void AssertMultiPageFormDataIsUpdatedCorrectly( AddRegistrationPromptSelectPromptData expectedPromptData, RegistrationPromptAnswersTempData expectedAnswersTempData ) { A.CallTo( () => multiPageFormService.SetMultiPageFormData( A <AddRegistrationPromptTempData> .That.Matches( d => d.SelectPromptData.Mandatory == expectedPromptData.Mandatory && d.SelectPromptData.CustomPromptId == expectedPromptData.CustomPromptId && d.ConfigureAnswersTempData.OptionsString == expectedAnswersTempData.OptionsString && d.ConfigureAnswersTempData.Answer == expectedAnswersTempData.Answer && d.ConfigureAnswersTempData.IncludeAnswersTableCaption == expectedAnswersTempData.IncludeAnswersTableCaption ), MultiPageFormDataFeature.AddRegistrationPrompt, registrationPromptsController.TempData ) ).MustHaveHappenedOnceExactly(); }
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); } }
public AddRegistrationPromptTempData() { SelectPromptData = new AddRegistrationPromptSelectPromptData(); ConfigureAnswersTempData = new RegistrationPromptAnswersTempData(); }
public AddRegistrationPromptSelectPromptViewModel(AddRegistrationPromptSelectPromptData data) { CustomPromptId = data.CustomPromptId; Mandatory = data.Mandatory; }