public async Task Index_creates_correct_viewmodel(string sortColumn, string sortOrder, DateTime?startDate, DateTime?endDate)
        {
            _applicationApplyApiClient.Setup(x => x.GetAllowedProvidersList(sortColumn, sortOrder)).ReturnsAsync(new List <AllowedProvider>());

            var expectedViewModel = new AddUkprnToAllowedProvidersListViewModel
            {
                SortColumn       = sortColumn,
                SortOrder        = sortOrder,
                Ukprn            = null,
                StartDate        = startDate,
                EndDate          = endDate,
                AllowedProviders = new List <AllowedProvider>()
            };

            var result = await _controller.Index(sortColumn, sortOrder, startDate, endDate);

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

            Assert.IsNotNull(viewModel);
            Assert.AreEqual(expectedViewModel.SortColumn, viewModel.SortColumn);
            Assert.AreEqual(expectedViewModel.SortOrder, viewModel.SortOrder);
            Assert.AreEqual(expectedViewModel.Ukprn, viewModel.Ukprn);
            Assert.AreEqual(expectedViewModel.StartDate, viewModel.StartDate);
            Assert.AreEqual(expectedViewModel.EndDate, viewModel.EndDate);
            CollectionAssert.AreEquivalent(expectedViewModel.AllowedProviders, viewModel.AllowedProviders);
        }
        public async Task <IActionResult> AddUkprn(AddUkprnToAllowedProvidersListViewModel model)
        {
            if (ModelState.IsValid)
            {
                await _applyApiClient.AddToAllowedProviders(int.Parse(model.Ukprn), model.StartDate.Value, model.EndDate.Value);
            }

            return(RedirectToAction(nameof(Index), new { sortColumn = model.SortColumn, sortOrder = model.SortOrder, startDate = model.StartDate?.ToString("yyyy-MM-dd"), endDate = model.EndDate?.ToString("yyyy-MM-dd") }));
        }
        public async Task AddUkprn_when_valid_ModelState_calls_AddToAllowUkprns_with_expected_parameters(int ukprn, DateTime startDate, DateTime endDate)
        {
            Assert.IsTrue(_controller.ModelState.IsValid, "Test requires valid ModelState");

            var request = new AddUkprnToAllowedProvidersListViewModel {
                Ukprn = ukprn.ToString(), StartDate = startDate, EndDate = endDate
            };

            var result = await _controller.AddUkprn(request);

            _applicationApplyApiClient.Verify(x => x.AddToAllowedProviders(ukprn, startDate, endDate), Times.Once);
            _applicationApplyApiClient.Verify(x => x.GetAllowedProvidersList(It.IsAny <string>(), It.IsAny <string>()), Times.Never);
        }
        public async Task AddUkprn_when_invalid_ModelState_does_not_call_AddToAllowUkprns(int ukprn, DateTime startDate, DateTime endDate)
        {
            _controller.ModelState.AddModelError("Ukprn", "Forced ModelState error");
            Assert.IsFalse(_controller.ModelState.IsValid, "Test requires invalid ModelState");

            var request = new AddUkprnToAllowedProvidersListViewModel {
                Ukprn = ukprn.ToString(), StartDate = startDate, EndDate = endDate
            };

            var result = await _controller.AddUkprn(request);

            _applicationApplyApiClient.Verify(x => x.AddToAllowedProviders(It.IsAny <int>(), It.IsAny <DateTime>(), It.IsAny <DateTime>()), Times.Never);
        }
        public async Task AddUkprn_when_valid_ModelState_redirects_to_Index(string ukprn, DateTime startDate, DateTime endDate)
        {
            Assert.IsTrue(_controller.ModelState.IsValid, "Test requires valid ModelState");

            var request = new AddUkprnToAllowedProvidersListViewModel {
                Ukprn = ukprn, StartDate = startDate, EndDate = endDate
            };

            var result = await _controller.AddUkprn(request);

            var redirectResult = result as RedirectToActionResult;

            Assert.AreEqual(nameof(_controller.Index), redirectResult.ActionName);
        }
        public async Task <IActionResult> Index(string sortColumn, string sortOrder, DateTime?startDate, DateTime?endDate)
        {
            var model = new AddUkprnToAllowedProvidersListViewModel
            {
                SortColumn       = sortColumn,
                SortOrder        = sortOrder,
                Ukprn            = null,
                StartDate        = startDate,
                EndDate          = endDate,
                AllowedProviders = await _applyApiClient.GetAllowedProvidersList(sortColumn, sortOrder)
            };

            return(View("~/Views/Roatp/AllowedProviders/Index.cshtml", model));
        }
Exemple #7
0
        public void Before_each_test()
        {
            _applicationApplyApiClient = new Mock <IRoatpApplicationApiClient>();

            _applicationApplyApiClient.Setup(x => x.GetAllowedProviderDetails(It.IsAny <int>())).ReturnsAsync(default(AllowedProvider));

            _validator = new AddUkprnToAllowProvidersListValidator(_applicationApplyApiClient.Object);

            _viewModel = new AddUkprnToAllowedProvidersListViewModel
            {
                Ukprn     = "12345678",
                StartDate = DateTime.MinValue,
                EndDate   = DateTime.MaxValue
            };
        }
        public async Task AddUkprn_when_invalid_ModelState_PRG_redirects_to_Index(int ukprn, DateTime startDate, DateTime endDate)
        {
            _controller.ModelState.AddModelError("Ukprn", "Forced ModelState error");
            Assert.IsFalse(_controller.ModelState.IsValid, "Test requires invalid ModelState");

            var request = new AddUkprnToAllowedProvidersListViewModel {
                Ukprn = ukprn.ToString(), StartDate = startDate, EndDate = endDate
            };

            var result = await _controller.AddUkprn(request);

            var redirectResult = result as RedirectToActionResult;

            Assert.AreEqual(nameof(_controller.Index), redirectResult.ActionName);
        }