public async Task RemoveUkprn_when_invalid_ModelState_does_not_call_RemoveFromAllowedUkprns(int ukprn)
        {
            _controller.ModelState.AddModelError("Confirm", "Forced ModelState error");
            Assert.IsFalse(_controller.ModelState.IsValid, "Test requires invalid ModelState");

            var request = new RemoveUkprnFromAllowedProvidersListViewModel();

            var result = await _controller.RemoveUkprn(ukprn, request);

            _applicationApplyApiClient.Verify(x => x.RemoveFromAllowedProviders(It.IsAny <int>()), Times.Never);
        }
Beispiel #2
0
        public void Before_each_test()
        {
            _validator = new RemoveUkprnFromAllowProvidersListValidator();

            _viewModel = new RemoveUkprnFromAllowedProvidersListViewModel
            {
                AllowedProvider = new AllowedProvider {
                    Ukprn = 12345678
                },
                Confirm = false
            };
        }
        public async Task RemoveUkprn_when_invalid_ModelState_PRG_redirects_to_ConfirmRemoveUkprn(int ukprn)
        {
            _controller.ModelState.AddModelError("Confirm", "Forced ModelState error");
            Assert.IsFalse(_controller.ModelState.IsValid, "Test requires invalid ModelState");

            var request = new RemoveUkprnFromAllowedProvidersListViewModel();

            var result = await _controller.RemoveUkprn(ukprn, request);

            var redirectResult = result as RedirectToActionResult;

            Assert.AreEqual(nameof(_controller.ConfirmRemoveUkprn), redirectResult.ActionName);
        }
        public async Task RemoveUkprn_when_valid_ModelState_and_Confirm_False_does_not_call_RemoveFromAllowedProviders(int ukprn)
        {
            Assert.IsTrue(_controller.ModelState.IsValid, "Test requires valid ModelState");

            var request = new RemoveUkprnFromAllowedProvidersListViewModel
            {
                Confirm = false
            };

            var result = await _controller.RemoveUkprn(ukprn, request);

            _applicationApplyApiClient.Verify(x => x.RemoveFromAllowedProviders(ukprn), Times.Never);
        }
        public async Task RemoveUkprn_when_valid_ModelState_and_Confirm_True_calls_RemoveFromAllowedProviders_with_expected_parameters(int ukprn)
        {
            Assert.IsTrue(_controller.ModelState.IsValid, "Test requires valid ModelState");

            var request = new RemoveUkprnFromAllowedProvidersListViewModel
            {
                Confirm = true
            };

            var result = await _controller.RemoveUkprn(ukprn, request);

            _applicationApplyApiClient.Verify(x => x.RemoveFromAllowedProviders(ukprn), Times.Once);
        }
        public async Task <IActionResult> ConfirmRemoveUkprn(string ukprn)
        {
            if (!int.TryParse(ukprn, out var providerUkprn))
            {
                return(RedirectToAction(nameof(Index)));
            }

            var model = new RemoveUkprnFromAllowedProvidersListViewModel
            {
                AllowedProvider = await _applyApiClient.GetAllowedProviderDetails(providerUkprn)
            };

            return(View("~/Views/Roatp/AllowedProviders/ConfirmRemoveUkprn.cshtml", model));
        }
        public async Task RemoveUkprn_when_valid_ModelState_and_Confirm_False_redirects_to_Index(int ukprn)
        {
            Assert.IsTrue(_controller.ModelState.IsValid, "Test requires valid ModelState");

            var request = new RemoveUkprnFromAllowedProvidersListViewModel
            {
                Confirm = false
            };

            var result = await _controller.RemoveUkprn(ukprn, request);

            var redirectResult = result as RedirectToActionResult;

            Assert.AreEqual(nameof(_controller.Index), redirectResult.ActionName);
        }
        public async Task <IActionResult> RemoveUkprn(int ukprn, RemoveUkprnFromAllowedProvidersListViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(nameof(ConfirmRemoveUkprn), new { ukprn }));
            }

            if (model.Confirm is true)
            {
                await _applyApiClient.RemoveFromAllowedProviders(ukprn);

                return(RedirectToAction(nameof(UkprnRemoved), new { ukprn }));
            }
            else
            {
                return(RedirectToAction(nameof(Index)));
            }
        }
        public async Task ConfirmRemoveUkprn_creates_correct_viewmodel(int ukprn)
        {
            _applicationApplyApiClient.Setup(x => x.GetAllowedProviderDetails(ukprn)).ReturnsAsync(new AllowedProvider {
                Ukprn = ukprn
            });

            var expectedViewModel = new RemoveUkprnFromAllowedProvidersListViewModel
            {
                AllowedProvider = new AllowedProvider {
                    Ukprn = ukprn
                }
            };

            var result = await _controller.ConfirmRemoveUkprn(ukprn.ToString());

            var viewResult = result as ViewResult;
            var viewModel  = viewResult?.Model as RemoveUkprnFromAllowedProvidersListViewModel;

            Assert.IsNotNull(viewModel);
            Assert.IsNotNull(viewModel.AllowedProvider);
            Assert.AreEqual(expectedViewModel.AllowedProvider.Ukprn, viewModel.AllowedProvider.Ukprn);
        }