public void EditAdminField_adds_model_error_if_trimmed_case_insensitive_answer_is_already_in_options_list() { // Given var model = new EditAdminFieldViewModel(1, "prompt", "test"); model.Answer = " tEsT "; var initialTempData = new EditAdminFieldTempData { PromptNumber = model.PromptNumber, Prompt = model.Prompt, OptionsString = model.OptionsString }; A.CallTo( () => multiPageFormService.GetMultiPageFormData <EditAdminFieldTempData>( MultiPageFormDataFeature.EditAdminField, controller.TempData ) ).Returns(initialTempData); const string action = "addPrompt"; // When var result = controller.EditAdminField(1, model, action); // Then using (new AssertionScope()) { result.As <ViewResult>().Model.Should().BeOfType <EditAdminFieldViewModel>(); AssertModelStateErrorIsExpected(result, "That response is already in the list of options"); } }
public IActionResult EditAdminFieldStart(int customisationId, int promptNumber) { var courseAdminField = courseAdminFieldsService.GetCourseAdminFieldsForCourse( customisationId ).AdminFields .Single(cp => cp.PromptNumber == promptNumber); var data = new EditAdminFieldTempData { PromptNumber = courseAdminField.PromptNumber, Prompt = courseAdminField.PromptText, OptionsString = NewlineSeparatedStringListHelper.JoinNewlineSeparatedList( courseAdminField.Options ), IncludeAnswersTableCaption = true, }; multiPageFormService.SetMultiPageFormData( data, MultiPageFormDataFeature.EditAdminField, TempData ); return(RedirectToAction("EditAdminField", new { customisationId, promptNumber })); }
public EditAdminFieldViewModel(EditAdminFieldTempData tempData) : base( tempData.OptionsString, tempData.Answer, tempData.IncludeAnswersTableCaption ) { Prompt = tempData.Prompt; PromptNumber = tempData.PromptNumber; }
public void EditAdminFieldAnswersBulk_updates_temp_data_and_redirects_to_edit() { // Given var inputViewModel = new BulkAdminFieldAnswersViewModel("Test\r\nAnswer"); var initialEditViewModel = new EditAdminFieldViewModel(1, "Test", "Test"); var initialTempData = new EditAdminFieldTempData { PromptNumber = initialEditViewModel.PromptNumber, Prompt = initialEditViewModel.Prompt, OptionsString = initialEditViewModel.OptionsString, Answer = initialEditViewModel.Answer, IncludeAnswersTableCaption = initialEditViewModel.IncludeAnswersTableCaption, }; A.CallTo( () => multiPageFormService.GetMultiPageFormData <EditAdminFieldTempData>( MultiPageFormDataFeature.EditAdminField, controller.TempData ) ).Returns(initialTempData); A.CallTo(() => courseService.VerifyAdminUserCanManageCourse(A <int> ._, A <int> ._, A <int> ._)) .Returns(true); // When var result = controller.EditAdminFieldAnswersBulk(1, inputViewModel); // Then using (new AssertionScope()) { A.CallTo( () => multiPageFormService.SetMultiPageFormData( A <EditAdminFieldTempData> .That.Matches( d => d.PromptNumber == initialTempData.PromptNumber && d.Prompt == initialTempData.Prompt && d.Answer == initialTempData.Answer && d.IncludeAnswersTableCaption == initialTempData.IncludeAnswersTableCaption && d.OptionsString == inputViewModel.OptionsString ), MultiPageFormDataFeature.EditAdminField, controller.TempData ) ).MustHaveHappenedOnceExactly(); result.Should().BeRedirectToActionResult().WithActionName("EditAdminField"); } }
private void AssertEditAdminFieldMultiPageFormDataIsUpdatedCorrectly( EditAdminFieldTempData expectedTempData ) { A.CallTo( () => multiPageFormService.SetMultiPageFormData( A <EditAdminFieldTempData> .That.Matches( d => d.PromptNumber == expectedTempData.PromptNumber && d.Prompt == expectedTempData.Prompt && d.OptionsString == expectedTempData.OptionsString && d.Answer == expectedTempData.Answer && d.IncludeAnswersTableCaption == expectedTempData.IncludeAnswersTableCaption ), MultiPageFormDataFeature.EditAdminField, controller.TempData ) ).MustHaveHappened(); }
public void PostAdminField_bulk_sets_up_temp_data_and_redirects() { // Given var model = new EditAdminFieldViewModel(1, "Test", "Options"); var expectedData = new EditAdminFieldTempData { PromptNumber = model.PromptNumber, Prompt = model.Prompt, OptionsString = model.OptionsString, Answer = model.Answer, IncludeAnswersTableCaption = model.IncludeAnswersTableCaption, }; const string action = "bulk"; // When var result = controller.EditAdminField(1, model, action); // Then using (new AssertionScope()) { AssertEditAdminFieldMultiPageFormDataIsUpdatedCorrectly(expectedData); result.Should().BeRedirectToActionResult().WithActionName("EditAdminFieldAnswersBulk"); } }