public async Task<ActionResult> SearchResults(string searchTerm) { await SetBreadcrumb(); SearchResultsViewModel viewModel = new SearchResultsViewModel(); viewModel.SearchTerm = searchTerm; viewModel.Results = await producerSearcher.Search(searchTerm, maximumSearchResults, false); return View(viewModel); }
public async Task PostSearchResults_WithSelectedPRN_RedirectsToDetailsAction() { // Arrange BreadcrumbService breadcrumb = A.Dummy<BreadcrumbService>(); ISearcher<ProducerSearchResult> producerSearcher = A.Dummy<ISearcher<ProducerSearchResult>>(); Func<IWeeeClient> weeeClient = A.Dummy<Func<IWeeeClient>>(); ProducersController controller = new ProducersController(breadcrumb, producerSearcher, weeeClient, cache); SearchResultsViewModel viewModel = new SearchResultsViewModel() { SelectedRegistrationNumber = "WEE/AA1111AA" }; // Act ActionResult result = await controller.SearchResults(viewModel); // Assert RedirectToRouteResult redirectResult = result as RedirectToRouteResult; Assert.NotNull(redirectResult); Assert.Equal("Details", redirectResult.RouteValues["action"]); Assert.Equal("WEE/AA1111AA", redirectResult.RouteValues["RegistrationNumber"]); }
public async Task PostSearchResults_WithInvalidModel_DoesSearchForTenResultsAndReturnsSearchReturnsView() { // Arrange BreadcrumbService breadcrumb = A.Dummy<BreadcrumbService>(); List<ProducerSearchResult> fakeResults = new List<ProducerSearchResult>() { new ProducerSearchResult() { Name = "Producer1", RegistrationNumber = "WEE/AA1111AA" } }; ISearcher<ProducerSearchResult> producerSearcher = A.Fake<ISearcher<ProducerSearchResult>>(); A.CallTo(() => producerSearcher.Search("testSearchTerm", 10, false)) .Returns(fakeResults); Func<IWeeeClient> weeeClient = A.Dummy<Func<IWeeeClient>>(); ProducersController controller = new ProducersController(breadcrumb, producerSearcher, weeeClient, cache); SearchResultsViewModel viewModel = new SearchResultsViewModel(); viewModel.SearchTerm = "testSearchTerm"; controller.ModelState.AddModelError("SomeProperty", "Exception"); // Act ActionResult result = await controller.SearchResults(viewModel); // Assert ViewResult viewResult = result as ViewResult; Assert.NotNull(viewResult); Assert.True(string.IsNullOrEmpty(viewResult.ViewName) || viewResult.ViewName.ToLowerInvariant() == "searchresults"); SearchResultsViewModel resultsViewModel = viewResult.Model as SearchResultsViewModel; Assert.NotNull(resultsViewModel); Assert.Contains(resultsViewModel.Results, r => r.RegistrationNumber == "WEE/AA1111AA"); }
public async Task<ActionResult> SearchResults(SearchResultsViewModel viewModel) { await SetBreadcrumb(); if (!ModelState.IsValid) { viewModel.Results = await producerSearcher.Search(viewModel.SearchTerm, maximumSearchResults, false); return View(viewModel); } return RedirectToAction("Details", new { RegistrationNumber = viewModel.SelectedRegistrationNumber }); }