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, configurationService); 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, configurationService); SearchResultsViewModel viewModel = new SearchResultsViewModel { 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"); }