public void ShouldReturnAErrorIfTheVacancyIsMissing()
        {
            // Arrange
            var viewModel = new DeleteVacancyViewModel();

            MockVacancyManagementProvider.Setup(x => x.FindSummary(It.IsAny <int>())).Returns(new ServiceResult <VacancySummary>(VacancyManagementServiceCodes.FindSummary.NotFound, null));
            var sut = GetMediator();

            // Act
            var response = sut.ConfirmDelete(viewModel);

            // Assert
            Assert.AreEqual(VacancyManagementMediatorCodes.ConfirmDelete.NotFound, response.Code);
            MockVacancyManagementProvider.Verify(x => x.FindSummary(It.IsAny <int>()));
        }
        public void ShouldReturnAFailureIfDeletingAVacancyHasAnyTypeOfError()
        {
            // Arrange
            var viewModel = new DeleteVacancyViewModel();

            MockVacancyManagementProvider.Setup(x => x.Delete(It.IsAny <int>())).Returns(new ServiceResult(VacancyManagementServiceCodes.Delete.VacancyInIncorrectState));
            var sut = GetMediator();

            // Act
            var response = sut.Delete(viewModel);

            // Assert
            Assert.AreEqual(VacancyManagementMediatorCodes.DeleteVacancy.Failure, response.Code);
            Assert.AreEqual(UserMessageLevel.Error, response.Message.Level);
            MockVacancyManagementProvider.Verify(x => x.Delete(It.IsAny <int>()));
        }
        public void ShouldHaveAGoodResultIfDeletingAVacancyServiceWasOk()
        {
            // Arrange
            var viewModel = new DeleteVacancyViewModel();

            MockVacancyManagementProvider.Setup(x => x.Delete(It.IsAny <int>())).Returns(new ServiceResult(VacancyManagementServiceCodes.Delete.Ok));
            var sut = GetMediator();

            // Act
            var response = sut.Delete(viewModel);

            // Assert
            Assert.AreEqual(VacancyManagementMediatorCodes.DeleteVacancy.Ok, response.Code);
            Assert.AreNotEqual(UserMessageLevel.Error, response.Message.Level);
            MockVacancyManagementProvider.Verify(x => x.Delete(It.IsAny <int>()));
        }
        public void ShouldFindASummaryAndReturnOk()
        {
            // Arrange
            var viewModel = new DeleteVacancyViewModel();

            MockVacancyManagementProvider.Setup(x => x.FindSummary(It.IsAny <int>())).Returns(new ServiceResult <VacancySummary>(VacancyManagementServiceCodes.FindSummary.Ok, new VacancySummary()
            {
                Title = "title"
            }));
            var sut = GetMediator();

            // Act
            var response = sut.ConfirmDelete(viewModel);

            // Assert
            Assert.AreEqual(VacancyManagementMediatorCodes.ConfirmDelete.Ok, response.Code);
            Assert.That(response.ViewModel.VacancyTitle, Is.Not.Null.And.Not.Empty);
            MockVacancyManagementProvider.Verify(x => x.FindSummary(It.IsAny <int>()));
        }