public void ShouldReturnNoVacancyIdIfNoVacancyGuidIsSuppliedOnReview()
        {
            var logService = new Mock <ILogService>();
            var mediator   = new TraineeshipApplicationMediator(null, null, null, null, logService.Object);

            var viewModel = new ApplicationSelectionViewModel(new VacancyApplicationsSearchViewModel(), Guid.Empty);

            var respone = mediator.Review(viewModel);

            respone.AssertCodeAndMessage(TraineeshipApplicationMediatorCodes.Review.NoApplicationId, false, false);
            logService.Verify(l => l.Info("Review vacancy failed: VacancyGuid is empty."));
        }
        public void ShouldUpdateCommentsWhenSettingStatusToSubmitted()
        {
            // Arrange
            var mockApplicationProvider = new Mock <IApplicationProvider>();
            var mockValidator           = new Mock <TraineeshipApplicationViewModelServerValidator>();
            var mediator  = new TraineeshipApplicationMediator(mockApplicationProvider.Object, mockValidator.Object, null, null, null);
            var viewModel = new Fixture().Build <TraineeshipApplicationViewModel>()
                            .With(vm => vm.Status, ApplicationStatuses.Submitted).Create();

            mockValidator.Setup(m => m.Validate(viewModel)).Returns(new ValidationResult());
            // Act
            var response = mediator.ReviewSetToSubmitted(viewModel);

            //Assert
            response.ViewModel.Status.Should().Be(ApplicationStatuses.Submitted);
            response.AssertCodeAndMessage(TraineeshipApplicationMediatorCodes.ReviewSaveAndContinue.Ok, false, false);
            mockApplicationProvider.Verify(m => m.SetTraineeshipStateSubmitted(viewModel.ApplicationSelection), Times.Once);
            mockApplicationProvider.Verify(m => m.UpdateTraineeshipApplicationViewModelNotes(viewModel.ApplicationSelection.ApplicationId, viewModel.Notes, false), Times.Once);
        }