コード例 #1
0
        public void Ok_CandidateIsLoggedInAndHasNoSavedSearches()
        {
            // Arrange.
            var candidateId = Guid.NewGuid();
            var candidateServiceProvider = new Mock <ICandidateServiceProvider>();

            var savedSearches = new SavedSearchViewModel[] { };

            candidateServiceProvider
            .Setup(p => p.GetSavedSearches(candidateId)).Returns(savedSearches);

            var candidate = new Domain.Entities.Candidates.Candidate
            {
                RegistrationDetails = new RegistrationDetails {
                    Address = new Address {
                        Postcode = "CANDIDATE POSTCODE"
                    }
                }
            };

            candidateServiceProvider
            .Setup(p => p.GetCandidate(candidateId)).Returns(candidate);

            var mediator = new ApprenticeshipSearchMediatorBuilder()
                           .With(candidateServiceProvider).Build();

            // Act.
            var response = mediator.Index(candidateId, ApprenticeshipSearchMode.SavedSearches, false);

            // Assert.
            candidateServiceProvider.Verify(p => p.GetSavedSearches(candidateId), Times.Once);
            response.ViewModel.SavedSearches.Count().Should().Be(savedSearches.Length);
            response.Code.Should().Be(ApprenticeshipSearchMediatorCodes.Index.Ok);
        }
コード例 #2
0
        public void SavedSearchNotFound_InvalidSavedSearchId()
        {
            // Arrange.
            var candidateId = Guid.NewGuid();
            var candidateServiceProvider = new Mock <ICandidateServiceProvider>();

            var viewModel = new ApprenticeshipSearchViewModel
            {
                SavedSearchId = "X"
            };

            var mediator = new ApprenticeshipSearchMediatorBuilder()
                           .With(candidateServiceProvider).Build();

            // Act.
            var response = mediator.RunSavedSearch(candidateId, viewModel);

            // Assert.
            candidateServiceProvider.Verify(p => p.GetSavedSearch(It.IsAny <Guid>(), It.IsAny <Guid>()), Times.Never);

            response.AssertMessage(
                ApprenticeshipSearchMediatorCodes.SavedSearch.SavedSearchNotFound,
                ApprenticeshipsSearchPageMessages.SavedSearchNotFound,
                UserMessageLevel.Error,
                false);
        }
コード例 #3
0
        public void RunSaveSearchFailed()
        {
            // Arrange.
            var candidateId              = Guid.NewGuid();
            var savedSearchId            = Guid.NewGuid();
            var candidateServiceProvider = new Mock <ICandidateServiceProvider>();

            var viewModel = new ApprenticeshipSearchViewModel
            {
                SavedSearchId = savedSearchId.ToString()
            };

            candidateServiceProvider
            .Setup(p => p.GetSavedSearch(candidateId, savedSearchId))
            .Returns(new SavedSearchViewModel
            {
                ViewModelMessage = "Error"
            });

            var mediator = new ApprenticeshipSearchMediatorBuilder()
                           .With(candidateServiceProvider).Build();

            // Act.
            var response = mediator.RunSavedSearch(candidateId, viewModel);

            // Assert.
            candidateServiceProvider.Verify(p => p.GetSavedSearch(candidateId, savedSearchId), Times.Once);

            response.AssertMessage(
                ApprenticeshipSearchMediatorCodes.SavedSearch.RunSaveSearchFailed,
                ApprenticeshipsSearchPageMessages.RunSavedSearchFailed,
                UserMessageLevel.Error,
                true);
        }
コード例 #4
0
        public void Ok()
        {
            // Arrange.
            var candidateId              = Guid.NewGuid();
            var savedSearchId            = Guid.NewGuid();
            var candidateServiceProvider = new Mock <ICandidateServiceProvider>();

            var viewModel = new ApprenticeshipSearchViewModel
            {
                SavedSearchId = savedSearchId.ToString()
            };

            var savedSearch = new Fixture()
                              .Build <SavedSearchViewModel>()
                              .With(each => each.ViewModelMessage, null)
                              .Create();

            candidateServiceProvider
            .Setup(p => p.GetSavedSearch(candidateId, savedSearchId)).Returns(savedSearch);

            var mediator = new ApprenticeshipSearchMediatorBuilder()
                           .With(candidateServiceProvider).Build();

            // Act.
            var response = mediator.RunSavedSearch(candidateId, viewModel);

            // Assert.
            candidateServiceProvider.Verify(p => p.GetSavedSearch(candidateId, savedSearchId), Times.Once);

            response.Code.Should().Be(ApprenticeshipSearchMediatorCodes.SavedSearch.Ok);
            response.ViewModel.Should().Be(savedSearch);
        }
コード例 #5
0
        public void Ok_CandidateIsNotLoggedIn()
        {
            // Arrange.
            var candidateServiceProvider = new Mock <ICandidateServiceProvider>();

            var mediator = new ApprenticeshipSearchMediatorBuilder()
                           .With(candidateServiceProvider).Build();

            // Act.
            var response = mediator.Index(null, ApprenticeshipSearchMode.SavedSearches, false);

            // Assert.
            candidateServiceProvider.Verify(p => p.GetSavedSearches(It.IsAny <Guid>()), Times.Never);
            response.Code.Should().Be(ApprenticeshipSearchMediatorCodes.Index.Ok);
        }
コード例 #6
0
        public void Ok()
        {
            var candidateId = Guid.NewGuid();
            var candidateServiceProvider = new Mock <ICandidateServiceProvider>();

            candidateServiceProvider.Setup(
                p => p.CreateSavedSearch(candidateId, It.IsAny <ApprenticeshipSearchViewModel>()))
            .Returns <Guid, ApprenticeshipSearchViewModel>((cid, vm) => vm);
            var mediator  = new ApprenticeshipSearchMediatorBuilder().With(candidateServiceProvider).Build();
            var viewModel = new ApprenticeshipSearchViewModelBuilder().Build();

            var response = mediator.SaveSearch(candidateId, viewModel);

            response.AssertMessage(ApprenticeshipSearchMediatorCodes.SaveSearch.Ok,
                                   VacancySearchResultsPageMessages.SaveSearchSuccess, UserMessageLevel.Success, true);
            candidateServiceProvider.Verify(p => p.CreateSavedSearch(candidateId, viewModel), Times.Once);
        }
コード例 #7
0
        public void Ok_CandidateIsLoggedInAndHasSavedSearches(int savedSearchCount)
        {
            // Arrange.
            var candidateId = Guid.NewGuid();
            var candidateServiceProvider = new Mock <ICandidateServiceProvider>();

            var savedSearches = new Fixture()
                                .Build <SavedSearchViewModel>()
                                .CreateMany(savedSearchCount);

            candidateServiceProvider
            .Setup(p => p.GetSavedSearches(candidateId)).Returns(savedSearches);

            var candidate = new Domain.Entities.Candidates.Candidate
            {
                RegistrationDetails = new RegistrationDetails {
                    Address = new Address {
                        Postcode = "CANDIDATE POSTCODE"
                    }
                }
            };

            candidateServiceProvider
            .Setup(p => p.GetCandidate(candidateId)).Returns(candidate);

            var mediator = new ApprenticeshipSearchMediatorBuilder()
                           .With(candidateServiceProvider).Build();

            // Act.
            var response = mediator.Index(candidateId, ApprenticeshipSearchMode.SavedSearches, false);

            // Assert.
            candidateServiceProvider.Verify(p => p.GetSavedSearches(candidateId), Times.Once);
            response.ViewModel.SavedSearches.Count().Should().Be(savedSearchCount);
            response.ViewModel.SavedSearches.Should().BeInDescendingOrder(each => each.DateCreated);
        }