public void Arrange()
        {
            var distributedCacheMock = new Mock <IDistributedCache>();

            var certificatePrivateStandardCodeController =
                new CertificatePrivateStandardCodeController(MockLogger.Object,
                                                             MockHttpContextAccessor.Object,
                                                             MockOrganisationApiClient,
                                                             new CacheHelper(distributedCacheMock.Object),
                                                             MockCertificateApiClient,
                                                             MockSession.Object,
                                                             MockStandardServiceClient.Object
                                                             );

            var vm = new CertificateStandardCodeListViewModel
            {
                Id                   = Certificate.Id,
                FullName             = "James Corley",
                SelectedStandardCode = "93",
                IsPrivatelyFunded    = true
            };

            SetupSession();

            MockSession.Setup(q => q.Get("EndPointAsessorOrganisationId"))
            .Returns("EPA00001");

            certificatePrivateStandardCodeController.ModelState.AddModelError("", "Error");

            var result = certificatePrivateStandardCodeController.StandardCode(vm).GetAwaiter().GetResult();

            _result = result as ViewResult;
        }
Esempio n. 2
0
        public void WhenInvalidModelContainsOneError()
        {
            var distributedCacheMock = new Mock <IDistributedCache>();

            var certificatePrivateStandardCodeController =
                new CertificatePrivateStandardCodeController(MockLogger.Object,
                                                             MockHttpContextAccessor.Object,
                                                             new CacheService(distributedCacheMock.Object),
                                                             MockApiClient,
                                                             MockStandardServiceClient.Object, MockOrganisationsApiClient);

            var vm = new CertificateStandardCodeListViewModel
            {
                Id                   = Certificate.Id,
                FullName             = "James Corley",
                SelectedStandardCode = "93",
                IsPrivatelyFunded    = true,
                ReasonForChange      = "Required reason for change"
            };

            MockSession.Setup(q => q.Get("EndPointAsessorOrganisationId"))
            .Returns("EPA00001");

            // view model validation errors will not be trigged as they are attached via fluent
            // validation and these are not connected in tests however this test is actually testing
            // the correct view is returned so the actual error is irrelevant and can be forced
            certificatePrivateStandardCodeController.ModelState.AddModelError("", "Error");

            var result = certificatePrivateStandardCodeController.StandardCode(vm).GetAwaiter().GetResult();

            _result = result as ViewResult;
        }
        public void WhenValidModelContainsNoErrors()
        {
            var distributedCacheMock = new Mock <IDistributedCache>();

            var certificatePrivateStandardCodeController =
                new CertificatePrivateStandardCodeController(MockLogger.Object,
                                                             MockHttpContextAccessor.Object,
                                                             new CacheService(distributedCacheMock.Object),
                                                             MockApiClient,
                                                             MockStandardServiceClient.Object, MockOrganisationsApiClient
                                                             );

            var vm = new CertificateStandardCodeListViewModel
            {
                Id                   = Certificate.Id,
                FullName             = "James Corley",
                SelectedStandardCode = "93",
                IsPrivatelyFunded    = true,
                ReasonForChange      = "Required reason for change"
            };

            MockSession.Setup(q => q.Get("EndPointAsessorOrganisationId"))
            .Returns("EPA00001");

            var result = certificatePrivateStandardCodeController.StandardCode(vm).GetAwaiter().GetResult();

            _result = result as RedirectToActionResult;
        }
        public async Task <IActionResult> StandardCode(CertificateStandardCodeListViewModel vm)
        {
            var username = ContextAccessor.HttpContext.User
                           .FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn")?.Value;

            var filteredStandardCodes = await GetFilteredStatusCodes();

            var standards = (await GetAllStandards()).ToList();

            vm.StandardCodes = GetSelectListItems(standards, filteredStandardCodes);
            if (!string.IsNullOrEmpty(vm.SelectedStandardCode))
            {
                var selectedStandard = standards.First(q => q.StandardId.ToString() == vm.SelectedStandardCode);
                vm.StandardReference = selectedStandard.ReferenceNumber;
                vm.Standard          = selectedStandard.Title;
                vm.Level             = selectedStandard.StandardData.Level.GetValueOrDefault();

                var sessionString = SessionService.Get("CertificateSession");
                if (sessionString == null)
                {
                    Logger.LogInformation(
                        $"Session for CertificateOptionViewModel requested by {username} has been lost. Redirecting to Search Index");
                    return(RedirectToAction("Index", "Search"));
                }

                var certificateSession = JsonConvert.DeserializeObject <CertificateSession>(sessionString);

                var options = (await _certificateApiClient.GetOptions(Convert.ToInt32(vm.SelectedStandardCode)))
                              .Select(o => o.OptionName).ToList();
                certificateSession.Options = options;

                _sessionService.Set("CertificateSession", new CertificateSession()
                {
                    CertificateId = certificateSession.CertificateId,
                    Uln           = certificateSession.Uln,
                    StandardCode  = Convert.ToInt32(vm.SelectedStandardCode),
                    Options       = options
                });
            }


            return(await SaveViewModel(vm,
                                       returnToIfModelNotValid : "~/Views/Certificate/StandardCode.cshtml",
                                       nextAction : RedirectToAction("Option", "CertificateOption"), action : CertificateActions.StandardCode));
        }
        public void Arrange()
        {
            Mock <IDistributedCache> mockDistributedCache = new Mock <IDistributedCache>();

            var certificatePrivateStandardCodeController =
                new CertificatePrivateStandardCodeController(MockLogger.Object,
                                                             MockHttpContextAccessor.Object,
                                                             new CacheService(mockDistributedCache.Object),
                                                             MockApiClient,
                                                             MockStandardServiceClient.Object, MockOrganisationsApiClient
                                                             );

            _result = certificatePrivateStandardCodeController.StandardCode(Certificate.Id, true).GetAwaiter().GetResult();

            var result = _result as ViewResult;

            _viewModelResponse = result.Model as CertificateStandardCodeListViewModel;
        }
Esempio n. 6
0
        public async Task <IActionResult> StandardCode(CertificateStandardCodeListViewModel vm)
        {
            var username = ContextAccessor.HttpContext.User
                           .FindFirst("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn")?.Value;

            var filteredStandardCodes = await GetFilteredStatusCodes(vm.Id);

            var standards = (await GetAllStandards()).ToList();

            vm.StandardCodes = GetSelectListItems(standards, filteredStandardCodes);
            if (!string.IsNullOrEmpty(vm.SelectedStandardCode))
            {
                var selectedStandard = standards.First(q => q.StandardId.ToString() == vm.SelectedStandardCode);
                vm.Standard = selectedStandard.Title;
                vm.Level    = selectedStandard.StandardData.Level.GetValueOrDefault();
            }

            var actionResult = await SaveViewModel(vm,
                                                   returnToIfModelNotValid : "~/Views/CertificateAmend/StandardCode.cshtml",
                                                   nextAction : RedirectToAction("Check", "CertificateAmend", new { certificateId = vm.Id, fromapproval = vm.FromApproval }), action : CertificateActions.StandardCode);

            return(actionResult);
        }