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>(); } }
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>(); } }
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"); }
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); }
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); }
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"); }
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); } }
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 )); }
public AddRegistrationPromptData() { Id = Guid.NewGuid(); SelectPromptViewModel = new AddRegistrationPromptSelectPromptViewModel(); ConfigureAnswersViewModel = new RegistrationPromptAnswersViewModel(); }