public async Task HttpPost_ConfirmRemoval_WithYesOptionSelected_AndRequestDoesNotReturnCacheInvalidation_ShouldNotInvalidateProducerSearch() { var viewModel = new ConfirmRemovalViewModel { SelectedValue = "Yes" }; A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <RemoveProducer> ._)) .Returns(new RemoveProducerResult(false)); await ProducersController().ConfirmRemoval(A.Dummy <Guid>(), viewModel); A.CallTo(() => cache.InvalidateProducerSearch()) .MustNotHaveHappened(); }
public async Task <ActionResult> ConfirmRemoval(Guid registeredProducerId, ConfirmRemovalViewModel model) { await SetBreadcrumb(); ProducerDetailsScheme producerDetailsScheme = await FetchProducerDetailsScheme(registeredProducerId); if (!ModelState.IsValid) { return(View(new ConfirmRemovalViewModel { Producer = producerDetailsScheme })); } if (model.SelectedValue == "Yes") { RemoveProducerResult result; using (IWeeeClient client = apiClient()) { result = await client.SendAsync(User.GetAccessToken(), new RemoveProducer(registeredProducerId)); } if (result.InvalidateProducerSearchCache) { await cache.InvalidateProducerSearch(); } return(RedirectToAction("Removed", new { producerDetailsScheme.RegistrationNumber, producerDetailsScheme.ComplianceYear, producerDetailsScheme.SchemeName })); } else { return(RedirectToAction("Details", new { producerDetailsScheme.RegistrationNumber })); } }
public bool ConfirmDelete() { var mViewModel = new ConfirmRemovalViewModel() { OkCommand = new RelayCommand(ExecuteOkCommand), CancelCommand = new RelayCommand(ExecuteCancelCommand) }; mView = new Window1 { DataContext = mViewModel }; var result = mView.ShowDialog(); if (result == true) { return(true); } return(false); }
public async Task HttpPost_ConfirmRemoval_WithNoOptionSelected_DoesNotSendRequest_AndDoesNotInvalidateProducerSearch_ThenRedirectsToDetailsAction() { // Arrange var viewModel = new ConfirmRemovalViewModel { SelectedValue = "No" }; // Act var result = await ProducersController().ConfirmRemoval(A.Dummy <Guid>(), viewModel); // Assert A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <RemoveProducer> ._)) .MustNotHaveHappened(); A.CallTo(() => cache.InvalidateProducerSearch()) .MustNotHaveHappened(); var routeValues = ((RedirectToRouteResult)result).RouteValues; Assert.Equal("Details", routeValues["action"]); }
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); }
public async Task HttpPost_ConfirmRemoval_WithYesOptionSelected_SendsRequest_ThenRegardlessOfCacheInvalidation_ShouldRedirectToRemovedAction(bool invalidateCache) { // Arrange var viewModel = new ConfirmRemovalViewModel { SelectedValue = "Yes" }; A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <RemoveProducer> ._)) .Returns(new RemoveProducerResult(invalidateCache)); // Act var result = await ProducersController().ConfirmRemoval(A.Dummy <Guid>(), viewModel); // Assert A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <RemoveProducer> ._)) .MustHaveHappened(Repeated.Exactly.Once); Assert.IsType <RedirectToRouteResult>(result); var routeValues = (((RedirectToRouteResult)result).RouteValues); Assert.Equal("Removed", routeValues["action"]); }
public async Task HttpPost_ConfirmRemoval_WithNoOptionSelected_DoesNotSendRequest_AndDoesNotInvalidateProducerSearch_ThenRedirectsToDetailsAction() { // Arrange var viewModel = new ConfirmRemovalViewModel(); viewModel.SelectedValue = "No"; // Act var result = await ProducersController().ConfirmRemoval(A.Dummy<Guid>(), viewModel); // Assert A.CallTo(() => weeeClient.SendAsync(A<string>._, A<RemoveProducer>._)) .MustNotHaveHappened(); A.CallTo(() => cache.InvalidateProducerSearch()) .MustNotHaveHappened(); var routeValues = ((RedirectToRouteResult)result).RouteValues; Assert.Equal("Details", routeValues["action"]); }
public async Task HttpPost_ConfirmRemoval_WithYesOptionSelected_SendsRequest_ThenRegardlessOfCacheInvalidation_ShouldRedirectToRemovedAction(bool invalidateCache) { // Arrange var viewModel = new ConfirmRemovalViewModel(); viewModel.SelectedValue = "Yes"; A.CallTo(() => weeeClient.SendAsync(A<string>._, A<RemoveProducer>._)) .Returns(new RemoveProducerResult(invalidateCache)); // Act var result = await ProducersController().ConfirmRemoval(A.Dummy<Guid>(), viewModel); // Assert A.CallTo(() => weeeClient.SendAsync(A<string>._, A<RemoveProducer>._)) .MustHaveHappened(Repeated.Exactly.Once); Assert.IsType<RedirectToRouteResult>(result); var routeValues = (((RedirectToRouteResult)result).RouteValues); Assert.Equal("Removed", routeValues["action"]); }
public async Task HttpPost_ConfirmRemoval_WithYesOptionSelected_AndRequestDoesNotReturnCacheInvalidation_ShouldNotInvalidateProducerSearch() { var viewModel = new ConfirmRemovalViewModel(); viewModel.SelectedValue = "Yes"; A.CallTo(() => weeeClient.SendAsync(A<string>._, A<RemoveProducer>._)) .Returns(new RemoveProducerResult(false)); await ProducersController().ConfirmRemoval(A.Dummy<Guid>(), viewModel); A.CallTo(() => cache.InvalidateProducerSearch()) .MustNotHaveHappened(); }
public async Task<ActionResult> ConfirmRemoval(Guid registeredProducerId, ConfirmRemovalViewModel model) { await SetBreadcrumb(); ProducerDetailsScheme producerDetailsScheme = await FetchProducerDetailsScheme(registeredProducerId); if (!ModelState.IsValid) { return View(new ConfirmRemovalViewModel { Producer = producerDetailsScheme }); } if (model.SelectedValue == "Yes") { RemoveProducerResult result; using (IWeeeClient client = apiClient()) { result = await client.SendAsync(User.GetAccessToken(), new RemoveProducer(registeredProducerId)); } if (result.InvalidateProducerSearchCache) { await cache.InvalidateProducerSearch(); } return RedirectToAction("Removed", new { producerDetailsScheme.RegistrationNumber, producerDetailsScheme.ComplianceYear, producerDetailsScheme.SchemeName }); } else { return RedirectToAction("Details", new { producerDetailsScheme.RegistrationNumber }); } }