public void CanCreateFormViewModel()
        {
            // Establish Context
            var viewModelToExpect = new ApplicationFormViewModel();

            // Act
            ApplicationFormViewModel viewModelRetrieved =
                _applicationManagementService.CreateFormViewModel();

            // Assert
            viewModelRetrieved.ShouldNotBeNull();
            viewModelRetrieved.Application.ShouldBeNull();
        }
        public void CanInitCreate()
        {
            // Establish Context
            var viewModel = new ApplicationFormViewModel();

            _applicationManagementService.Expect(r => r.CreateFormViewModel())
                .Return(viewModel);

            // Act
            ViewResult result = _applicationsController.Create().AssertViewRendered();

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as ApplicationFormViewModel).ShouldNotBeNull();
            (result.ViewData.Model as ApplicationFormViewModel).Application.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 CanCreateFormViewModelForApplication()
        {
            // Establish Context
            var viewModelToExpect = new ApplicationFormViewModel();

            Application application =
                ApplicationInstanceFactory.CreateValidTransientApplication();

            _applicationRepository.Expect(r => r.Get(1))
                .Return(application);

            // Act
            ApplicationFormViewModel viewModelRetrieved =
                _applicationManagementService.CreateFormViewModelFor(1);

            // Assert
            viewModelRetrieved.ShouldNotBeNull();
            viewModelRetrieved.Application.ShouldNotBeNull();
            viewModelRetrieved.Application.ShouldEqual(application);
        }
 public ApplicationFormViewModel CreateFormViewModel()
 {
     var viewModel = new ApplicationFormViewModel();
     LoadViewModel(viewModel);
     return viewModel;
 }
        protected void LoadViewModel(ApplicationFormViewModel viewModel)
        {
            viewModel.SubjectMatterExperts = (viewModel.Application != null &&
                                     viewModel.Application.SubjectMatterExpertId.HasValue)
                                        ? _personManagementService.GetActiveStaff(viewModel.Application.SubjectMatterExpertId.Value)
                                        : _personManagementService.GetActiveStaff();

            viewModel.Hosts = _hostManagementService.GetAll();
            viewModel.SupportTeams = _supportTeamManagementService.GetAll();
        }
        public void CanInitEdit()
        {
            // Establish Context
            var viewModel = new ApplicationFormViewModel();

            _applicationManagementService.Expect(r => r.CreateFormViewModelFor(Arg<int>.Is.Anything))
                .Return(viewModel);

            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);

            // Act
            ViewResult result = _applicationsController.Edit(1).AssertViewRendered();

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as ApplicationFormViewModel).ShouldNotBeNull();
        }
        public void CanShowApplication()
        {
            // Establish Context
            Application application =
                ApplicationInstanceFactory.CreateValidTransientApplication();
            var viewModel = new ApplicationFormViewModel { Application = application };

            _applicationManagementService.Expect(r => r.CreateFormViewModelFor(Arg<int>.Is.Anything))
                .Return(viewModel);

            // Act
            ViewResult result = _applicationsController.Show(1).AssertViewRendered();

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as ApplicationFormViewModel).Application.ShouldNotBeNull();
            (result.ViewData.Model as ApplicationFormViewModel).Application.ShouldEqual(application);
        }
        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();
        }