public ActionResult Create(Application application) { if (ViewData.ModelState.IsValid) { application.LastUpdateTimeStamp = DateTime.Now; application.LastUpdateUser = GetCurrentUser().Id; ActionConfirmation saveOrUpdateConfirmation = _applicationManagementService.SaveOrUpdate(application); if (saveOrUpdateConfirmation.WasSuccessful) { TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()] = saveOrUpdateConfirmation.Message; return RedirectToAction("Index"); } } else { application = null; } ApplicationFormViewModel viewModel = _applicationManagementService.CreateFormViewModelFor(application); return View(viewModel); }
public void CanDeleteApplication() { // Establish Context var applicationToDelete = new Application(); _applicationRepository.Expect(r => r.Get(1)) .Return(applicationToDelete); // Act ActionConfirmation confirmation = _applicationManagementService.Delete(1); // Assert confirmation.ShouldNotBeNull(); confirmation.WasSuccessful.ShouldBeTrue(); confirmation.Value.ShouldBeNull(); }
public ApplicationFormViewModel CreateFormViewModelFor(Application application) { ApplicationFormViewModel viewModel = new ApplicationFormViewModel(); application.SetHostIdsFromHost(); viewModel.Application = application; LoadViewModel(viewModel); if (application.SupportTeamId != null) { viewModel.SupportTeam = _supportTeamManagementService.Get(application.SupportTeamId.Value); if (viewModel.SupportTeam != null && viewModel.SupportTeam.SupervisorId.HasValue) viewModel.SupportTeamSupervisor = _personManagementService.Get(viewModel.SupportTeam.SupervisorId.Value); if (viewModel.SupportTeamSupervisor != null && viewModel.SupportTeamSupervisor.SupervisorId.HasValue) viewModel.SupportTeamAdmin = _personManagementService.Get(viewModel.SupportTeamSupervisor.SupervisorId.Value); } if (application.SubjectMatterExpertId != null) viewModel.SubjectMatterExpert = _personManagementService.Get(application.SubjectMatterExpertId.Value); return viewModel; }
public void CanCreateValidApplicationFromForm() { // Establish Context var applicationFromForm = new Application(); var testUser = PersonInstanceFactory.CreateValidTransientPerson(); testUser.SetAssignedIdTo(1); _authenticationProvider.Expect(r => r.GetLoggedInUser()).Return("testuser"); _personManagementService.Expect(r => r.GetByUserName(Arg<string>.Is.Anything)).Return(testUser); _applicationManagementService.Expect(r => r.SaveOrUpdate(applicationFromForm)) .Return(ActionConfirmation.CreateSuccessConfirmation("saved")); // Act RedirectToRouteResult redirectResult = _applicationsController.Create(applicationFromForm) .AssertActionRedirect().ToAction("Index"); // Assert _applicationsController.TempData[ControllerEnums.GlobalViewDataProperty.PageMessage.ToString()].ToString() .ShouldEqual("saved"); }
public void CanUpdateWithValidApplicationFromForm() { // Establish Context Application validApplicationFromForm = ApplicationInstanceFactory.CreateValidTransientApplication(); var validPerson = PersonInstanceFactory.CreateValidTransientPerson(); validApplicationFromForm.LastUpdateUser = 1; validPerson.RoleId = 2; // Intentionally empty to ensure successful transfer of values var applicationFromDb = new Application { ApplicationName = "Application Name 1", SupportTeamId = 1 }; _personManagementService.Expect(r => r.Get(Arg<int>.Is.Anything)).Return(validPerson); _applicationRepository.Expect(r => r.Get(Arg<int>.Is.Anything)) .Return(applicationFromDb); _personManagementService.Expect(r => r.Get(Arg<int>.Is.Anything)).Return(validPerson); // Act ActionConfirmation confirmation = _applicationManagementService.UpdateWith(validApplicationFromForm, 1); // Assert confirmation.ShouldNotBeNull(); confirmation.WasSuccessful.ShouldBeTrue(); confirmation.Value.ShouldNotBeNull(); confirmation.Value.ShouldEqual(applicationFromDb); confirmation.Value.ShouldEqual(validApplicationFromForm); }
public void CannotUpdateWithInvalidApplicationFromForm() { // Establish Context var invalidApplicationFromForm = new Application(); var validPerson = PersonInstanceFactory.CreateValidTransientPerson(); invalidApplicationFromForm.LastUpdateUser = 1; // Intentionally empty to ensure successful transfer of values var applicationFromDb = new Application(); _applicationRepository.Expect(r => r.Get(1)) .Return(applicationFromDb); _personManagementService.Expect(r => r.Get(Arg<int>.Is.Anything)).Return(validPerson); // Act ActionConfirmation confirmation = _applicationManagementService.UpdateWith(invalidApplicationFromForm, 1); // Assert confirmation.ShouldNotBeNull(); confirmation.WasSuccessful.ShouldBeFalse(); confirmation.Value.ShouldBeNull(); }
public void CannotSaveOrUpdateInvalidApplication() { // Establish Context var invalidApplication = new Application(); // Act ActionConfirmation confirmation = _applicationManagementService.SaveOrUpdate(invalidApplication); // Assert confirmation.ShouldNotBeNull(); confirmation.WasSuccessful.ShouldBeFalse(); confirmation.Value.ShouldBeNull(); }
private void TransferFormValuesTo(Application applicationToUpdate, Application applicationFromForm) { var person = _personManagementService.Get(applicationFromForm.LastUpdateUser.Value); switch (person.RoleId) { case 2: applicationToUpdate.ApplicationName = applicationFromForm.ApplicationName; applicationToUpdate.ApplicationDescription = applicationFromForm.ApplicationDescription; applicationToUpdate.Alias = applicationFromForm.Alias; applicationToUpdate.SupportTeamId = applicationFromForm.SupportTeamId; applicationToUpdate.SubjectMatterExpertId = applicationFromForm.SubjectMatterExpertId; applicationToUpdate.MaintenanceExpirationDate = applicationFromForm.MaintenanceExpirationDate; applicationToUpdate.SupervisorNotes = applicationFromForm.SupervisorNotes; applicationToUpdate.SupportStaffNotes = applicationFromForm.SupportStaffNotes; applicationToUpdate.ServiceDeskNotes = applicationFromForm.ServiceDeskNotes; applicationToUpdate.PrimaryUrl = applicationFromForm.PrimaryUrl; applicationToUpdate.DocumentationUrl = applicationFromForm.DocumentationUrl; applicationToUpdate.SetHostsFromHostId(applicationFromForm.HostIds); break; case 3: applicationToUpdate.SupportStaffNotes = applicationFromForm.SupportStaffNotes; break; default: applicationToUpdate.ServiceDeskNotes = applicationFromForm.ServiceDeskNotes; break; } applicationToUpdate.LastUpdateTimeStamp = applicationFromForm.LastUpdateTimeStamp; applicationToUpdate.LastUpdateUser = applicationFromForm.LastUpdateUser; }
public ActionConfirmation UpdateWith(Application applicationFromForm, int idOfApplicationToUpdate) { Application applicationToUpdate = _applicationRepository.Get(idOfApplicationToUpdate); TransferFormValuesTo(applicationToUpdate, applicationFromForm); if (applicationToUpdate.IsValid()) { ActionConfirmation updateConfirmation = ActionConfirmation.CreateSuccessConfirmation( "The application was successfully updated."); updateConfirmation.Value = applicationToUpdate; return updateConfirmation; } else { _applicationRepository.DbContext.RollbackTransaction(); return ActionConfirmation.CreateFailureConfirmation( "The application could not be saved due to missing or invalid information."); } }
public ActionConfirmation SaveOrUpdate(Application application) { if (application.IsValid()) { application.SetHostsFromHostId(application.HostIds); _applicationRepository.SaveOrUpdate(application); ActionConfirmation saveOrUpdateConfirmation = ActionConfirmation.CreateSuccessConfirmation( "The application was successfully saved."); saveOrUpdateConfirmation.Value = application; return saveOrUpdateConfirmation; } else { _applicationRepository.DbContext.RollbackTransaction(); return ActionConfirmation.CreateFailureConfirmation( "The application could not be saved due to missing or invalid information."); } }
public void CannotUpdateInvalidApplicationFromForm() { // Establish Context var applicationFromForm = new Application(); var viewModelToExpect = new ApplicationFormViewModel(); var testUser = PersonInstanceFactory.CreateValidTransientPerson(); testUser.SetAssignedIdTo(1); _authenticationProvider.Expect(r => r.GetLoggedInUser()).Return("testuser"); _personManagementService.Expect(r => r.GetByUserName(Arg<string>.Is.Anything)).Return(testUser); _applicationManagementService.Expect(r => r.UpdateWith(applicationFromForm, 0)) .Return(ActionConfirmation.CreateFailureConfirmation("not updated")); _applicationManagementService.Expect(r => r.CreateFormViewModelFor(applicationFromForm)) .Return(viewModelToExpect); // Act ViewResult result = _applicationsController.Edit(applicationFromForm).AssertViewRendered(); // Assert result.ViewData.Model.ShouldNotBeNull(); (result.ViewData.Model as ApplicationFormViewModel).ShouldNotBeNull(); }