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"); }