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

            // Act
            RequestStatusFormViewModel viewModelRetrieved =
                _requestStatusManagementService.CreateFormViewModel();

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

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

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

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as RequestStatusFormViewModel).ShouldNotBeNull();
            (result.ViewData.Model as RequestStatusFormViewModel).RequestStatus.ShouldBeNull();
        }
        public void CanCreateFormViewModelForRequestStatus()
        {
            // Establish Context
            var viewModelToExpect = new RequestStatusFormViewModel();

            RequestStatus requestStatus =
                RequestStatusInstanceFactory.CreateValidTransientRequestStatus();

            _requestStatusRepository.Expect(r => r.Get(1))
                .Return(requestStatus);

            // Act
            RequestStatusFormViewModel viewModelRetrieved =
                _requestStatusManagementService.CreateFormViewModelFor(1);

            // Assert
            viewModelRetrieved.ShouldNotBeNull();
            viewModelRetrieved.RequestStatus.ShouldNotBeNull();
            viewModelRetrieved.RequestStatus.ShouldEqual(requestStatus);
        }
        public void CannotUpdateInvalidRequestStatusFromForm()
        {
            // Establish Context
            var requestStatusFromForm = new RequestStatus();
            var viewModelToExpect = new RequestStatusFormViewModel();
            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);
            _requestStatusManagementService.Expect(r => r.UpdateWith(requestStatusFromForm, 0))
                .Return(ActionConfirmation.CreateFailureConfirmation("not updated"));
            _requestStatusManagementService.Expect(r => r.CreateFormViewModelFor(requestStatusFromForm))
                .Return(viewModelToExpect);

            // Act
            ViewResult result =
                _requestStatusesController.Edit(requestStatusFromForm).AssertViewRendered();

            // Assert
            result.ViewData.Model.ShouldNotBeNull();
            (result.ViewData.Model as RequestStatusFormViewModel).ShouldNotBeNull();
        }