public void PostEditRegistrationPrompt_bulk_sets_up_temp_data_and_redirects() { // Given var model = new EditRegistrationPromptViewModel(1, "Test", false, "Test\r\nAnswer", "Answer"); const string action = "bulk"; // When var result = registrationPromptsController.EditRegistrationPrompt(model, action); // Then using (new AssertionScope()) { A.CallTo( () => multiPageFormService.SetMultiPageFormData( A <EditRegistrationPromptTempData> .That.Matches( d => d.PromptNumber == model.PromptNumber && d.Prompt == model.Prompt && d.Mandatory == model.Mandatory && d.Answer == model.Answer && d.IncludeAnswersTableCaption == model.IncludeAnswersTableCaption && d.OptionsString == model.OptionsString ), MultiPageFormDataFeature.EditRegistrationPrompt, registrationPromptsController.TempData ) ).MustHaveHappenedOnceExactly(); result.Should().BeRedirectToActionResult().WithActionName("EditRegistrationPromptBulk"); } }
public void PostEditRegistrationPrompt_save_calls_correct_methods() { // Given var model = new EditRegistrationPromptViewModel(1, "Test", false, "Test"); const string action = "save"; A.CallTo( () => centreCustomPromptsService.UpdateCustomPromptForCentre( ControllerContextHelper.CentreId, 1, false, "Test" ) ).DoesNothing(); // When var result = registrationPromptsController.EditRegistrationPrompt(model, action); // Then A.CallTo( () => centreCustomPromptsService.UpdateCustomPromptForCentre( ControllerContextHelper.CentreId, 1, false, "Test" ) ).MustHaveHappened(); result.Should().BeRedirectToActionResult().WithActionName("Index"); }
public void PostEditRegistrationPrompt_returns_error_with_unexpected_action() { // Given var model = new EditRegistrationPromptViewModel(1, "Test", false, "Test\r\nAnswer", "Answer"); const string action = "deletetest"; // When var result = registrationPromptsController.EditRegistrationPrompt(model, action); // Then result.Should().BeStatusCodeResult().WithStatusCode(500); }
public void PostEditRegistrationPrompt_delete_removes_configured_answer() { // Given var model = new EditRegistrationPromptViewModel(1, "Test", false, "Test\r\nAnswer", "Answer"); const string action = "delete0"; // When var result = registrationPromptsController.EditRegistrationPrompt(model, action); // Then result.As <ViewResult>().Model.Should().BeOfType <EditRegistrationPromptViewModel>().Which.OptionsString .Should().BeEquivalentTo("Answer"); }
public IActionResult EditRegistrationPrompt(EditRegistrationPromptViewModel model, string action) { if (action.StartsWith(DeleteAction) && TryGetAnswerIndexFromDeleteAction(action, out var index)) { return(RegistrationPromptAnswersPostRemovePrompt(model, index)); } return(action switch { SaveAction => EditRegistrationPromptPostSave(model), AddPromptAction => RegistrationPromptAnswersPostAddPrompt(model), BulkAction => EditRegistrationPromptBulk(model), _ => new StatusCodeResult(500), });
public void PostEditRegistrationPrompt_bulk_sets_up_temp_data_and_redirects() { // Given var model = new EditRegistrationPromptViewModel(1, "Test", false, "Test\r\nAnswer", "Answer"); const string action = "bulk"; // When var result = registrationPromptsController.EditRegistrationPrompt(model, action); // Then using (new AssertionScope()) { AssertEditTempDataIsExpected(model); result.Should().BeRedirectToActionResult().WithActionName("EditRegistrationPromptBulk"); } }
public void RegistrationPromptBulkPost_updates_temp_data_and_redirects_to_edit() { // Given var inputViewModel = new BulkRegistrationPromptAnswersViewModel("Test\r\nAnswer", false, 1); var initialEditViewModel = new EditRegistrationPromptViewModel(1, "Prompt", false, "Test"); var initialTempData = new EditRegistrationPromptTempData { PromptNumber = initialEditViewModel.PromptNumber, Prompt = initialEditViewModel.Prompt, Mandatory = initialEditViewModel.Mandatory, OptionsString = initialEditViewModel.OptionsString, Answer = initialEditViewModel.Answer, IncludeAnswersTableCaption = initialEditViewModel.IncludeAnswersTableCaption, }; A.CallTo( () => multiPageFormService.GetMultiPageFormData <EditRegistrationPromptTempData>( MultiPageFormDataFeature.EditRegistrationPrompt, registrationPromptsController.TempData ) ).Returns(initialTempData); // When var result = registrationPromptsController.EditRegistrationPromptBulkPost(inputViewModel); // Then using (new AssertionScope()) { A.CallTo( () => multiPageFormService.SetMultiPageFormData( A <EditRegistrationPromptTempData> .That.Matches( d => d.PromptNumber == initialTempData.PromptNumber && d.Prompt == initialTempData.Prompt && d.Mandatory == initialTempData.Mandatory && d.Answer == initialTempData.Answer && d.IncludeAnswersTableCaption == initialTempData.IncludeAnswersTableCaption && d.OptionsString == inputViewModel.OptionsString ), MultiPageFormDataFeature.EditRegistrationPrompt, registrationPromptsController.TempData ) ).MustHaveHappenedOnceExactly(); result.Should().BeRedirectToActionResult().WithActionName("EditRegistrationPrompt"); } }
public void RegistrationPromptBulkPost_updates_temp_data_and_redirects_to_edit() { // Given var inputViewModel = new BulkRegistrationPromptAnswersViewModel("Test\r\nAnswer", false, 1); var initialEditViewModel = new EditRegistrationPromptViewModel(1, "Prompt", false, "Test"); var expectedViewModel = new EditRegistrationPromptViewModel(1, "Prompt", false, "Test\r\nAnswer"); var initialTempData = new EditRegistrationPromptData(initialEditViewModel); registrationPromptsController.TempData.Set(initialTempData); // When var result = registrationPromptsController.EditRegistrationPromptBulkPost(inputViewModel); // Then using (new AssertionScope()) { AssertEditTempDataIsExpected(expectedViewModel); result.Should().BeRedirectToActionResult().WithActionName("EditRegistrationPrompt"); } }
public void PostEditRegistrationPrompt_add_configures_new_answer() { // Given var model = new EditRegistrationPromptViewModel(1, "Test", false, "Test", "Answer"); const string action = "addPrompt"; A.CallTo( () => centreCustomPromptsService.UpdateCustomPromptForCentre( ControllerContextHelper.CentreId, 1, false, "Test" ) ).DoesNothing(); // When var result = registrationPromptsController.EditRegistrationPrompt(model, action); // Then result.As <ViewResult>().Model.Should().BeOfType <EditRegistrationPromptViewModel>().Which.OptionsString .Should().BeEquivalentTo("Test\r\nAnswer"); }
public EditRegistrationPromptData(EditRegistrationPromptViewModel model) { Id = Guid.NewGuid(); EditModel = model; }
private void AssertEditTempDataIsExpected(EditRegistrationPromptViewModel expectedData) { registrationPromptsController.TempData.Peek <EditRegistrationPromptData>() !.EditModel.Should() .BeEquivalentTo(expectedData); }
public static EditRegistrationPromptTempData ToEditRegistrationPromptTempData(this EditRegistrationPromptViewModel model) { return(new EditRegistrationPromptTempData { PromptNumber = model.PromptNumber, Prompt = model.Prompt, Mandatory = model.Mandatory, OptionsString = model.OptionsString, Answer = model.Answer, IncludeAnswersTableCaption = model.IncludeAnswersTableCaption, }); }