private static Mock <ITraineeshipVacancyProvider> GetTraineeshipVacancyProvider() { var traineeshipVacancyProvider = new Mock <ITraineeshipVacancyProvider>(); var londonVacancies = new[] { new TraineeshipVacancySummaryViewModel { Description = "A London Vacancy" } }; var emptyVacancies = new TraineeshipVacancySummaryViewModel[0]; // This order is important. Moq will run though all matches and pick the last one. traineeshipVacancyProvider.Setup(sp => sp.FindVacancies(It.IsAny <TraineeshipSearchViewModel>())) .Returns <TraineeshipSearchViewModel>( svm => new TraineeshipSearchResponseViewModel { Vacancies = emptyVacancies, VacancySearch = svm }); traineeshipVacancyProvider.Setup( sp => sp.FindVacancies(It.Is <TraineeshipSearchViewModel>(svm => svm.Location == "London"))) .Returns <TraineeshipSearchViewModel>( svm => new TraineeshipSearchResponseViewModel { Vacancies = londonVacancies, VacancySearch = svm }); return(traineeshipVacancyProvider); }
private static Mock <ISearchProvider> GetSearchProvider() { var searchProvider = new Mock <ISearchProvider>(); searchProvider.Setup(sp => sp.FindLocation( It.IsAny <string>())). Returns <string>(l => new LocationsViewModel(new[] { new LocationViewModel { Name = l }, new LocationViewModel { Name = Guid.NewGuid().ToString() } })); searchProvider.Setup(sp => sp.FindLocation( InvalidLocation)). Returns <string>(l => new LocationsViewModel(new LocationViewModel[0])); var londonVacancies = new[] { new TraineeshipVacancySummaryViewModel { Description = "A London Vacancy" } }; var emptyVacancies = new TraineeshipVacancySummaryViewModel[0]; // This order is important. Moq will run though all matches and pick the last one. searchProvider.Setup(sp => sp.FindVacancies(It.IsAny <TraineeshipSearchViewModel>())).Returns <TraineeshipSearchViewModel>(svm => new TraineeshipSearchResponseViewModel { Vacancies = emptyVacancies, VacancySearch = svm }); searchProvider.Setup(sp => sp.FindVacancies(It.Is <TraineeshipSearchViewModel>(svm => svm.Location == "London"))).Returns <TraineeshipSearchViewModel>(svm => new TraineeshipSearchResponseViewModel { Vacancies = londonVacancies, VacancySearch = svm }); return(searchProvider); }