public void AddAdminField_calls_service_and_redirects_to_error_on_failure() { // Given var model = new AddAdminFieldViewModel(1, "Test"); const string action = "save"; var initialTempData = new AddAdminFieldData(model); controller.TempData.Set(initialTempData); A.CallTo( () => courseAdminFieldsService.AddCustomPromptToCourse( 100, 1, "Test" ) ).Returns(false); // When var result = controller.AddAdminField(100, model, action); // Then using (new AssertionScope()) { result.Should().BeStatusCodeResult().WithStatusCode(500); } }
public void AddAdminField_post_updates_temp_data_and_redirects() { var expectedPromptModel = new AddAdminFieldViewModel(); var initialTempData = new AddAdminFieldData(expectedPromptModel); controller.TempData.Set(initialTempData); // When var result = controller.AddAdminField(1); // Then AssertAddTempDataIsExpected(expectedPromptModel); result.As <ViewResult>().Model.Should().BeOfType <AddAdminFieldViewModel>(); }
public void AddAdminField_returns_error_with_unexpected_action() { // Given var model = new AddAdminFieldViewModel(); const string action = "deletetest"; var initialTempData = new AddAdminFieldData(model); controller.TempData.Set(initialTempData); // When var result = controller.AddAdminField(1, model, action); // Then result.Should().BeStatusCodeResult().WithStatusCode(500); }
public void AddAdminField_removes_answer_without_admin_field_selected() { var model = new AddAdminFieldViewModel(null, "Test\r\nAnswer"); const string action = "delete0"; var initialTempData = new AddAdminFieldData(model); controller.TempData.Set(initialTempData); // When var result = controller.AddAdminField(1, model, action); // Then using (new AssertionScope()) { result.As <ViewResult>().Model.Should().BeOfType <AddAdminFieldViewModel>(); AssertNumberOfConfiguredAnswersOnView(result, 1); } }
public void AddAdminField_bulk_redirects_without_admin_field_selected() { // Given var model = new AddAdminFieldViewModel(null, "Options"); const string action = "bulk"; var initialTempData = new AddAdminFieldData(model); controller.TempData.Set(initialTempData); // When var result = controller.AddAdminField(1, model, action); // Then using (new AssertionScope()) { AssertAddTempDataIsExpected(model); result.Should().BeRedirectToActionResult().WithActionName("AddAdminFieldAnswersBulk"); } }
public void AddAdminField_adds_answer_without_admin_field_selected() { var initialViewModel = new AddAdminFieldViewModel(null, null, "Answer"); var initialTempData = new AddAdminFieldData(initialViewModel); controller.TempData.Set(initialTempData); var expectedViewModel = new AddAdminFieldViewModel(null, "Answer"); const string action = "addPrompt"; // When controller.AddAdminField(1, initialViewModel, action); // Then using (new AssertionScope()) { AssertAddTempDataIsExpected(expectedViewModel); } }
public void AddAdminFieldAnswersBulk_updates_temp_data_and_redirects_to_add() { // Given var inputViewModel = new AddBulkAdminFieldAnswersViewModel("Test\r\nAnswer", 1); var initialAddViewModel = new AddAdminFieldViewModel(1, "Test"); var expectedViewModel = new AddAdminFieldViewModel(1, "Test\r\nAnswer"); var initialTempData = new AddAdminFieldData(initialAddViewModel); controller.TempData.Set(initialTempData); // When var result = controller.AddAdminFieldAnswersBulk(1, inputViewModel); // Then using (new AssertionScope()) { AssertAddTempDataIsExpected(expectedViewModel); result.Should().BeRedirectToActionResult().WithActionName("AddAdminField"); } }
public void AddAdminField_add_configures_new_answer_and_updates_temp_data() { var initialViewModel = new AddAdminFieldViewModel(1, "Test", "Answer"); var initialTempData = new AddAdminFieldData(initialViewModel); controller.TempData.Set(initialTempData); var expectedViewModel = new AddAdminFieldViewModel(1, "Test\r\nAnswer"); const string action = "addPrompt"; // When var result = controller.AddAdminField(1, initialViewModel, action); // Then using (new AssertionScope()) { AssertAddTempDataIsExpected(expectedViewModel); result.As <ViewResult>().Model.Should().BeOfType <AddAdminFieldViewModel>(); AssertNumberOfConfiguredAnswersOnView(result, 2); } }
public void AddAdminField_save_redirects_successfully_without_answers_configured() { // Given var model = new AddAdminFieldViewModel(1, null); const string action = "save"; var initialTempData = new AddAdminFieldData(model); controller.TempData.Set(initialTempData); A.CallTo( () => courseAdminFieldsService.AddCustomPromptToCourse( 100, 1, null ) ).Returns(true); // When var result = controller.AddAdminField(100, model, action); // Then result.Should().BeRedirectToActionResult().WithActionName("Index"); }
public void AddAdminField_adds_model_error_if_new_answer_surpasses_character_limit( string optionsString, string newAnswerInput, string expectedErrorMessage ) { // Given var initialViewModel = new AddAdminFieldViewModel(1, optionsString, newAnswerInput); var initialTempData = new AddAdminFieldData(initialViewModel); controller.TempData.Set(initialTempData); const string action = "addPrompt"; // When var result = controller.AddAdminField(1, initialViewModel, action); // Then using (new AssertionScope()) { result.As <ViewResult>().Model.Should().BeOfType <AddAdminFieldViewModel>(); AssertModelStateErrorIsExpected(result, expectedErrorMessage); } }