Пример #1
0
        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();
        }
Пример #2
0
        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);
        }
Пример #4
0
        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"]);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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
                    });
            }
        }