public async void GetConfirmRemoval_ReturnsHttpForbiddenResult_WhenCanRemoveProducerIsFalse() { // Arrange IWeeeClient weeeClient = A.Fake <IWeeeClient>(); ProducersController controller = new ProducersController( A.Dummy <BreadcrumbService>(), A.Dummy <ISearcher <ProducerSearchResult> >(), () => weeeClient, A.Dummy <IWeeeCache>(), configurationService); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetProducerDetailsByRegisteredProducerId> ._)) .Returns( new ProducerDetailsScheme { CanRemoveProducer = false }); // Act var result = await controller.ConfirmRemoval(A.Dummy <Guid>()); // Assert Assert.IsType <HttpForbiddenResult>(result); }
public async void HttpGet_DownloadProducerEeeHistoryCsv_ShouldReturnFileContentType() { // Arrange BreadcrumbService breadcrumb = A.Dummy <BreadcrumbService>(); ISearcher <ProducerSearchResult> producerSearcher = A.Dummy <ISearcher <ProducerSearchResult> >(); IWeeeClient weeeClient = A.Fake <IWeeeClient>(); CSVFileData csvData = A.Dummy <CSVFileData>(); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetProducerEeeDataHistoryCsv> ._)) .Returns(new CSVFileData { FileName = "test.csv", FileContent = "123,abc" }); Func <IWeeeClient> weeeClientFunc = A.Fake <Func <IWeeeClient> >(); A.CallTo(() => weeeClientFunc()) .Returns(weeeClient); ProducersController controller = new ProducersController(breadcrumb, producerSearcher, weeeClientFunc, cache, configurationService); //Act var result = await controller.DownloadProducerEeeDataHistoryCsv("WEE/AA1111AA"); //Assert Assert.IsType <FileContentResult>(result); }
public async void GetConfirmRemoval_ReturnsConfirmRemovalView_WhenCanRemoveProducerIsTrue() { // Arrange IWeeeClient weeeClient = A.Fake <IWeeeClient>(); ProducersController controller = new ProducersController( A.Dummy <BreadcrumbService>(), A.Dummy <ISearcher <ProducerSearchResult> >(), () => weeeClient, A.Dummy <IWeeeCache>(), configurationService); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetProducerDetailsByRegisteredProducerId> ._)) .Returns( new ProducerDetailsScheme { CanRemoveProducer = true }); // Act ActionResult result = await controller.ConfirmRemoval(A.Dummy <Guid>()); // Assert ViewResult viewResult = result as ViewResult; Assert.NotNull(viewResult); Assert.True(string.IsNullOrEmpty(viewResult.ViewName) || viewResult.ViewName.ToLowerInvariant() == "confirmremoval"); }
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 GetDetails_FetchesComplianceYearsFromApiAndReturnsViewWithYearValues() { // Arrange BreadcrumbService breadcrumb = A.Dummy <BreadcrumbService>(); ISearcher <ProducerSearchResult> producerSearcher = A.Dummy <ISearcher <ProducerSearchResult> >(); IWeeeClient weeeClient = A.Fake <IWeeeClient>(); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetProducerComplianceYear> ._)) .WhenArgumentsMatch(a => ((GetProducerComplianceYear)a[1]).RegistrationNumber == "WEE/AA1111AA") .Returns(new List <int> { 2018, 2017, 2016 }); Func <IWeeeClient> weeeClientFunc = A.Fake <Func <IWeeeClient> >(); A.CallTo(() => weeeClientFunc()) .Returns(weeeClient); ProducersController controller = new ProducersController(breadcrumb, producerSearcher, weeeClientFunc, cache, configurationService); // Act ActionResult result = await controller.Details("WEE/AA1111AA"); // Assert A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetProducerComplianceYear> ._)) .WhenArgumentsMatch(a => ((GetProducerComplianceYear)a[1]).RegistrationNumber == "WEE/AA1111AA") .MustHaveHappened(); ViewResult viewResult = result as ViewResult; Assert.NotNull(viewResult); Assert.True(string.IsNullOrEmpty(viewResult.ViewName) || viewResult.ViewName.ToLowerInvariant() == "details"); DetailsViewModel resultsViewModel = viewResult.Model as DetailsViewModel; Assert.NotNull(resultsViewModel); Assert.Equal(2018, resultsViewModel.SelectedYear); Assert.Collection(resultsViewModel.ComplianceYears, r1 => Assert.Equal("2018", r1.Text), r2 => Assert.Equal("2017", r2.Text), r3 => Assert.Equal("2016", r3.Text)); }
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"); }
public async Task GetSearch_ReturnsSearchView() { // 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); // Act ActionResult result = await controller.Search(); // Assert ViewResult viewResult = result as ViewResult; Assert.NotNull(viewResult); Assert.True(string.IsNullOrEmpty(viewResult.ViewName) || viewResult.ViewName.ToLowerInvariant() == "search"); }
public async Task FetchDetails_FetchesDetailsFromApiAndReturnsDetailsView() { // Arrange BreadcrumbService breadcrumb = A.Dummy <BreadcrumbService>(); ISearcher <ProducerSearchResult> producerSearcher = A.Dummy <ISearcher <ProducerSearchResult> >(); IWeeeClient weeeClient = A.Fake <IWeeeClient>(); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetProducerComplianceYear> ._)) .WhenArgumentsMatch(a => ((GetProducerComplianceYear)a[1]).RegistrationNumber == "WEE/AA1111AA") .Returns(new List <int> { 2018, 2017, 2016 }); ProducerDetails producerDetails = A.Dummy <ProducerDetails>(); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetProducerDetails> ._)) .WhenArgumentsMatch(a => ((GetProducerDetails)a[1]).RegistrationNumber == "WEE/AA1111AA") .Returns(producerDetails); Func <IWeeeClient> weeeClientFunc = A.Fake <Func <IWeeeClient> >(); A.CallTo(() => weeeClientFunc()) .Returns(weeeClient); ProducersController controller = new ProducersController(breadcrumb, producerSearcher, weeeClientFunc, cache, configurationService); // Act ActionResult result = await controller.FetchDetails("WEE/AA1111AA", 2015); // Assert A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetProducerDetails> ._)) .WhenArgumentsMatch(a => ((GetProducerDetails)a[1]).RegistrationNumber == "WEE/AA1111AA") .MustHaveHappened(); PartialViewResult viewResult = result as PartialViewResult; Assert.NotNull(viewResult); Assert.True(string.IsNullOrEmpty(viewResult.ViewName) || viewResult.ViewName.ToLowerInvariant() == "_detailsresults"); Assert.Equal(producerDetails, viewResult.Model); }
public async Task PostConfirmRemoval_WithInvalidModel_ReturnsConfirmRemovalView() { // Arrange ProducersController controller = new ProducersController( A.Dummy <BreadcrumbService>(), A.Dummy <ISearcher <ProducerSearchResult> >(), () => A.Dummy <IWeeeClient>(), A.Dummy <IWeeeCache>(), configurationService); controller.ModelState.AddModelError("SomeProperty", "Exception"); // Act ActionResult result = await controller.ConfirmRemoval(A.Dummy <Guid>(), A.Dummy <ConfirmRemovalViewModel>()); // Assert ViewResult viewResult = result as ViewResult; Assert.NotNull(viewResult); Assert.True(string.IsNullOrEmpty(viewResult.ViewName) || viewResult.ViewName.ToLowerInvariant() == "confirmremoval"); }
public async Task PostSearch_WithInvalidModel_ReturnsSearchView() { // 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); SearchViewModel viewModel = new SearchViewModel(); controller.ModelState.AddModelError("SomeProperty", "Exception"); // Act ActionResult result = await controller.Search(viewModel); // Assert ViewResult viewResult = result as ViewResult; Assert.NotNull(viewResult); Assert.True(string.IsNullOrEmpty(viewResult.ViewName) || viewResult.ViewName.ToLowerInvariant() == "search"); }
public async void GetConfirmRemoval_CallsApiForSpecifiedRegisteredProducer_AndPopulatesViewModel() { // Arrange Guid registeredProducerId = new Guid("9F253FE4-B644-4EA1-B58E-19C735512449"); ProducerDetailsScheme producerDetailsScheme = new ProducerDetailsScheme { CanRemoveProducer = true }; IWeeeClient weeeClient = A.Fake <IWeeeClient>(); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetProducerDetailsByRegisteredProducerId> ._)) .WhenArgumentsMatch(a => a.Get <GetProducerDetailsByRegisteredProducerId>("request").RegisteredProducerId == registeredProducerId) .Returns(producerDetailsScheme); ProducersController controller = new ProducersController( A.Dummy <BreadcrumbService>(), A.Dummy <ISearcher <ProducerSearchResult> >(), () => weeeClient, A.Dummy <IWeeeCache>(), configurationService); // Act ActionResult result = await controller.ConfirmRemoval(registeredProducerId); // Assert ViewResult viewResult = result as ViewResult; Assert.NotNull(viewResult); ConfirmRemovalViewModel viewModel = viewResult.Model as ConfirmRemovalViewModel; Assert.NotNull(viewModel); Assert.Equal(producerDetailsScheme, viewModel.Producer); }