Пример #1
0
        public void Arrange()
        {
            _validator = new GroundsOfAppealViewModelValidator();

            _viewModel = new GroundsOfAppealViewModel
            {
                ApplicationId = Guid.NewGuid(),
                FormAction    = GroundsOfAppealViewModel.SUBMIT_APPEAL_FORMACTION
            };
        }
Пример #2
0
        private void RestoreUserInputFromTempData(GroundsOfAppealViewModel model)
        {
            if (TempData["HowFailedOnEvidenceSubmitted"] != null)
            {
                model.HowFailedOnEvidenceSubmitted = TempData["HowFailedOnEvidenceSubmitted"] as string;
            }

            if (TempData["HowFailedOnPolicyOrProcesses"] != null)
            {
                model.HowFailedOnPolicyOrProcesses = TempData["HowFailedOnPolicyOrProcesses"] as string;
            }
        }
Пример #3
0
        private async Task <GroundsOfAppealViewModel> BuildModelGroundsOfAppealViewModel(Guid applicationId, bool appealOnPolicyOrProcesses, bool appealOnEvidenceSubmitted)
        {
            var appealFileList = await _appealsApiClient.GetAppealFileList(applicationId);

            var model = new GroundsOfAppealViewModel
            {
                ApplicationId             = applicationId,
                AppealOnPolicyOrProcesses = appealOnPolicyOrProcesses,
                AppealOnEvidenceSubmitted = appealOnEvidenceSubmitted,
                AppealFiles = appealFileList?.AppealFiles
            };

            return(model);
        }
Пример #4
0
        public async Task POST_GroundsOfAppeal_verify_DeleteFile_api_call_when_valid_DELETE_APPEALFILE_FORMACTION()
        {
            string fileName = "test.pdf";

            var model = new GroundsOfAppealViewModel
            {
                ApplicationId             = _applicationId,
                AppealOnEvidenceSubmitted = true,
                AppealOnPolicyOrProcesses = true,
                FormAction = $"{GroundsOfAppealViewModel.DELETE_APPEALFILE_FORMACTION}{GroundsOfAppealViewModel.FORMACTION_SEPERATOR}{fileName}",
            };

            var result = await _controller.GroundsOfAppeal(model);

            _appealsApiClient.Verify(x => x.DeleteFile(_applicationId, fileName, It.IsAny <string>(), It.IsAny <string>()), Times.Once);
        }
Пример #5
0
        public async Task POST_GroundsOfAppeal_verify_UploadFile_api_call_when_valid_UPLOAD_APPEALFILE_FORMACTION()
        {
            var appealFile = Mock.Of <IFormFile>();

            var model = new GroundsOfAppealViewModel
            {
                ApplicationId             = _applicationId,
                AppealOnEvidenceSubmitted = true,
                AppealOnPolicyOrProcesses = true,
                FormAction         = GroundsOfAppealViewModel.UPLOAD_APPEALFILE_FORMACTION,
                AppealFileToUpload = appealFile
            };

            var result = await _controller.GroundsOfAppeal(model);

            _appealsApiClient.Verify(x => x.UploadFile(_applicationId, appealFile, It.IsAny <string>(), It.IsAny <string>()), Times.Once);
        }
Пример #6
0
        public async Task GroundsOfAppeal_shows_make_appeal_page_if_within_appeal_window()
        {
            var _appealOnPolicyOrProcesses = false;
            var _appealOnEvidenceSubmitted = false;

            var model = new GroundsOfAppealViewModel {
                ApplicationId = _applicationId, AppealOnPolicyOrProcesses = _appealOnPolicyOrProcesses, AppealOnEvidenceSubmitted = _appealOnEvidenceSubmitted
            };

            var result = await _controller.GroundsOfAppeal(_applicationId, _appealOnPolicyOrProcesses, _appealOnEvidenceSubmitted);

            var viewResult = result as ViewResult;

            viewResult.Should().NotBeNull();
            viewResult.ViewName.Should().Contain("GroundsOfAppeal.cshtml");
            viewResult.Model.Should().BeEquivalentTo(model);
        }
Пример #7
0
        public async Task POST_GroundsOfAppeal_shows_GroundsOfAppeal_page_when_valid_DELETE_APPEALFILE_FORMACTION()
        {
            string fileName = "test.pdf";

            var model = new GroundsOfAppealViewModel
            {
                ApplicationId             = _applicationId,
                AppealOnEvidenceSubmitted = true,
                AppealOnPolicyOrProcesses = true,
                FormAction = $"{GroundsOfAppealViewModel.DELETE_APPEALFILE_FORMACTION}{GroundsOfAppealViewModel.FORMACTION_SEPERATOR}{fileName}",
            };

            var result = await _controller.GroundsOfAppeal(model);

            var viewResult = result as RedirectToActionResult;

            viewResult.Should().NotBeNull();
            viewResult.ActionName.Should().Be("GroundsOfAppeal");
        }
Пример #8
0
        public async Task POST_GroundsOfAppeal_verify_MakeAppeal_api_call_when_valid_input_submitted()
        {
            var howFailedOnEvidenceSubmitted = "valid input";
            var howFailedOnPolicyOrProcesses = "valid input";

            var model = new GroundsOfAppealViewModel
            {
                ApplicationId                = _applicationId,
                AppealOnEvidenceSubmitted    = !string.IsNullOrEmpty(howFailedOnEvidenceSubmitted),
                HowFailedOnEvidenceSubmitted = howFailedOnEvidenceSubmitted,
                AppealOnPolicyOrProcesses    = !string.IsNullOrEmpty(howFailedOnPolicyOrProcesses),
                HowFailedOnPolicyOrProcesses = howFailedOnPolicyOrProcesses,
                FormAction = GroundsOfAppealViewModel.SUBMIT_APPEAL_FORMACTION
            };

            var result = await _controller.GroundsOfAppeal(model);

            _appealsApiClient.Verify(x => x.MakeAppeal(_applicationId, howFailedOnPolicyOrProcesses, howFailedOnEvidenceSubmitted, It.IsAny <string>(), It.IsAny <string>()), Times.Once);
        }
Пример #9
0
        public async Task <IActionResult> GroundsOfAppeal(GroundsOfAppealViewModel model)
        {
            if (!await CanMakeAppeal(model.ApplicationId))
            {
                return(RedirectToAction("ProcessApplicationStatus", "RoatpOverallOutcome", new { model.ApplicationId }));
            }

            if (!ModelState.IsValid)
            {
                return(View("~/Views/Appeals/GroundsOfAppeal.cshtml", model));
            }

            var signInId = User.GetSignInId().ToString();
            var userName = User.Identity.Name;

            switch (model.RequestedFormAction)
            {
            case GroundsOfAppealViewModel.DELETE_APPEALFILE_FORMACTION:
                await _appealsApiClient.DeleteFile(model.ApplicationId, model.RequestedFileToDelete, signInId, userName);

                StoreUserInputInTempData(model);
                return(RedirectToAction("GroundsOfAppeal", new { model.ApplicationId, model.AppealOnPolicyOrProcesses, model.AppealOnEvidenceSubmitted }));

            case GroundsOfAppealViewModel.UPLOAD_APPEALFILE_FORMACTION:
                await _appealsApiClient.UploadFile(model.ApplicationId, model.AppealFileToUpload, signInId, userName);

                StoreUserInputInTempData(model);
                return(RedirectToAction("GroundsOfAppeal", new { model.ApplicationId, model.AppealOnPolicyOrProcesses, model.AppealOnEvidenceSubmitted }));

            case GroundsOfAppealViewModel.SUBMIT_APPEAL_FORMACTION:
                if (model.AppealFileToUpload != null)
                {
                    await _appealsApiClient.UploadFile(model.ApplicationId, model.AppealFileToUpload, signInId, userName);
                }
                await _appealsApiClient.MakeAppeal(model.ApplicationId, model.HowFailedOnPolicyOrProcesses, model.HowFailedOnEvidenceSubmitted, signInId, userName);

                return(RedirectToAction("AppealSubmitted", new { model.ApplicationId }));

            default:
                return(RedirectToAction("ProcessApplicationStatus", "RoatpOverallOutcome", new { model.ApplicationId }));
            }
        }
Пример #10
0
        public async Task POST_GroundsOfAppeal_shows_GroundsOfAppeal_page_when_valid_UPLOAD_APPEALFILE_FORMACTION()
        {
            var appealFile = Mock.Of <IFormFile>();

            var model = new GroundsOfAppealViewModel
            {
                ApplicationId             = _applicationId,
                AppealOnEvidenceSubmitted = true,
                AppealOnPolicyOrProcesses = true,
                FormAction         = GroundsOfAppealViewModel.UPLOAD_APPEALFILE_FORMACTION,
                AppealFileToUpload = appealFile
            };

            var result = await _controller.GroundsOfAppeal(model);

            var viewResult = result as RedirectToActionResult;

            viewResult.Should().NotBeNull();
            viewResult.ActionName.Should().Be("GroundsOfAppeal");
        }
Пример #11
0
        public async Task POST_GroundsOfAppeal_shows_AppealSubmitted_page_when_valid_input_submitted()
        {
            var howFailedOnEvidenceSubmitted = "valid input";
            var howFailedOnPolicyOrProcesses = "valid input";

            var model = new GroundsOfAppealViewModel
            {
                ApplicationId                = _applicationId,
                AppealOnEvidenceSubmitted    = !string.IsNullOrEmpty(howFailedOnEvidenceSubmitted),
                HowFailedOnEvidenceSubmitted = howFailedOnEvidenceSubmitted,
                AppealOnPolicyOrProcesses    = !string.IsNullOrEmpty(howFailedOnPolicyOrProcesses),
                HowFailedOnPolicyOrProcesses = howFailedOnPolicyOrProcesses,
                FormAction = GroundsOfAppealViewModel.SUBMIT_APPEAL_FORMACTION
            };

            var result = await _controller.GroundsOfAppeal(model);

            var viewResult = result as RedirectToActionResult;

            viewResult.Should().NotBeNull();
            viewResult.ActionName.Should().Be("AppealSubmitted");
        }
Пример #12
0
 private void StoreUserInputInTempData(GroundsOfAppealViewModel model)
 {
     TempData["HowFailedOnEvidenceSubmitted"] = model.HowFailedOnEvidenceSubmitted;
     TempData["HowFailedOnPolicyOrProcesses"] = model.HowFailedOnPolicyOrProcesses;
 }