public void Arrange()
        {
            var certificatePrivateFirstNameController =
                new CertificatePrivateFirstNameController(MockLogger.Object,
                                                          MockHttpContextAccessor.Object,
                                                          MockCertificateApiClient,
                                                          MockSession.Object
                                                          );

            var vm = new CertificateFirstNameViewModel
            {
                Id                = Certificate.Id,
                FullName          = "James Corley",
                FirstName         = "James",
                FamilyName        = "Corley",
                GivenNames        = "James",
                Level             = 2,
                Standard          = "91",
                IsPrivatelyFunded = true
            };

            SetupSession();

            var result = certificatePrivateFirstNameController.FirstName(vm).GetAwaiter().GetResult();

            _result = result as RedirectToActionResult;
        }
예제 #2
0
        public void WhenInvalidModelContainsOneError()
        {
            // view model validation are
            var certificatePrivateFirstNameController =
                new CertificatePrivateFirstNameController(MockLogger.Object,
                                                          MockHttpContextAccessor.Object,
                                                          MockApiClient
                                                          );

            var vm = new CertificateFirstNameViewModel
            {
                Id                = Certificate.Id,
                FullName          = "James Corley",
                FirstName         = "James",
                FamilyName        = "Corley",
                GivenNames        = "James",
                Level             = 2,
                Standard          = "91",
                IsPrivatelyFunded = true,
                ReasonForChange   = "Reason for change"
            };

            // 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
            certificatePrivateFirstNameController.ModelState.AddModelError("", "Error");

            var result = certificatePrivateFirstNameController.FirstName(vm).GetAwaiter().GetResult();

            _result = result as ViewResult;
        }
        public void WhenValidModelContainsNoErrors()
        {
            var certificatePrivateFirstNameController =
                new CertificatePrivateFirstNameController(MockLogger.Object,
                                                          MockHttpContextAccessor.Object,
                                                          MockApiClient
                                                          );

            var vm = new CertificateFirstNameViewModel
            {
                Id                = Certificate.Id,
                FullName          = "James Corley",
                FirstName         = "James",
                FamilyName        = "Corley",
                GivenNames        = "James",
                Level             = 2,
                Standard          = "91",
                IsPrivatelyFunded = true,
                ReasonForChange   = "Required reason for change"
            };

            var result = certificatePrivateFirstNameController.FirstName(vm).GetAwaiter().GetResult();

            _result = result as RedirectToActionResult;
        }
예제 #4
0
        public async Task <IActionResult> FirstName(CertificateFirstNameViewModel vm)
        {
            var actionResult = await SaveViewModel(vm,
                                                   returnToIfModelNotValid : "~/Views/CertificateAmend/FirstName.cshtml",
                                                   nextAction : RedirectToAction("Check", "CertificateAmend", new { certificateId = vm.Id, fromapproval = vm.FromApproval }), action : CertificateActions.FirstName);

            return(actionResult);
        }
        public void Arrange()
        {
            var certificatePrivateFirstNameController =
                new CertificatePrivateFirstNameController(MockLogger.Object,
                                                          MockHttpContextAccessor.Object,
                                                          MockApiClient
                                                          );

            _result = certificatePrivateFirstNameController.FirstName(Certificate.Id, true).GetAwaiter().GetResult();

            var result = _result as ViewResult;

            _viewModelResponse = result.Model as CertificateFirstNameViewModel;
        }
        public static CertificateApiClient Setup(Certificate certificate, Mock <ILogger <CertificateApiClient> > apiClientLoggerMock)
        {
            var webConfigMock = new Mock <IWebConfiguration>();
            var hostMock      = new Mock <IHostingEnvironment>();

            hostMock
            .Setup(m => m.EnvironmentName)
            .Returns(EnvironmentName.Development);
            var tokenServiceMock = new TokenService(webConfigMock.Object, hostMock.Object, false);

            var options = Builder <Option> .CreateListOfSize(10)
                          .Build();

            var mockHttp = new MockHttpMessageHandler();

            var client = mockHttp.ToHttpClient();

            client.BaseAddress = new Uri("http://localhost:59022/");

            mockHttp.When($"http://localhost:59022/api/v1/certificates/{certificate.Id}")
            .Respond("application/json", JsonConvert.SerializeObject(certificate));

            mockHttp.When($"http://localhost:59022/api/v1/organisations/{certificate.OrganisationId}")
            .Respond("application/json", JsonConvert.SerializeObject(certificate));

            mockHttp.When($"http://localhost:59022/api/v1/certificates/options/?stdCode={93}")
            .Respond("application/json", JsonConvert.SerializeObject(options));

            var certificateFirstNameViewModel = new CertificateFirstNameViewModel
            {
                Id                = new Guid("1f120837-72d5-40eb-a785-b3936210d47a"),
                FullName          = "James Corley",
                FirstName         = "James",
                FamilyName        = "Corley",
                GivenNames        = "James",
                Level             = 2,
                Standard          = "91",
                IsPrivatelyFunded = true
            };

            mockHttp
            .When(System.Net.Http.HttpMethod.Put, "http://localhost:59022/api/v1/certificates/update")
            .Respond(System.Net.HttpStatusCode.OK, "application/json", "{'status' : 'OK'}");

            var apiClient = new CertificateApiClient(client, tokenServiceMock, apiClientLoggerMock.Object);

            return(apiClient);
        }
예제 #7
0
        public void Arrange()
        {
            var certificatePrivateFirstNameController =
                new CertificatePrivateFirstNameController(MockLogger.Object,
                                                          MockHttpContextAccessor.Object,
                                                          MockCertificateApiClient,
                                                          MockSession.Object
                                                          );

            SetupSession();

            var mockStringLocaliserBuildernew = new MockStringLocaliserBuilder();

            var localiser = mockStringLocaliserBuildernew
                            .WithKey(ResourceMessageName.NoAssesmentProviderFound)
                            .WithKeyValue("100000000")
                            .Build <CertificateFirstNameViewModelValidator>();

            var certificateFirstNameViewModelValidator
                = new CertificateFirstNameViewModelValidator(localiser.Object);


            var vm = new CertificateFirstNameViewModel
            {
                Id                = Certificate.Id,
                FullName          = "James Corley",
                FirstName         = String.Empty,
                FamilyName        = "",
                GivenNames        = "James",
                Level             = 2,
                Standard          = "91",
                IsPrivatelyFunded = true
            };

            _validationResult = certificateFirstNameViewModelValidator.Validate(vm);
        }
        public static ApiClient Setup(Certificate certificate, Mock <ILogger <ApiClient> > apiClientLoggerMock)
        {
            var tokenServiceMock = new Mock <ITokenService>();

            var options = Builder <Option> .CreateListOfSize(10)
                          .Build();

            var certificateResponses = Builder <CertificateResponse> .CreateListOfSize(10)
                                       .Build();

            var certificateSummaryResponses = Builder <CertificateSummaryResponse> .CreateListOfSize(10)
                                              .All()
                                              .TheFirst(3)
                                              .With(x => x.Status = "Approved")
                                              .TheNext(3)
                                              .With(x => x.Status = "Rejected")
                                              .TheNext(4)
                                              .With(x => x.Status = "ToBeApproved")
                                              .Build();

            var paginatedResponseApproval =
                new PaginatedList <CertificateSummaryResponse>(
                    certificateSummaryResponses.Where(x => x.Status == "Approved").ToList(), 10, 1, 10);
            var paginatedResponseRejections =
                new PaginatedList <CertificateSummaryResponse>(
                    certificateSummaryResponses.Where(x => x.Status == "Rejected").ToList(), 10, 1, 10);
            var paginatedResponseSentForApproval =
                new PaginatedList <CertificateSummaryResponse>(
                    certificateSummaryResponses.Where(x => x.Status == "ToBeApproved").ToList(), 10, 1, 10);

            var mockHttp = new MockHttpMessageHandler();

            var client = mockHttp.ToHttpClient();

            client.BaseAddress = new Uri("http://localhost:59022/");

            mockHttp.When($"http://localhost:59022/api/v1/certificates/{certificate.Id}")
            .Respond("application/json", JsonConvert.SerializeObject(certificate));
            /// api / v1 / organisations / organisation /{ id}


            var organisation = Builder <Organisation> .CreateNew()
                               .With(q => q.Id = certificate.OrganisationId)
                               .With(q => q.EndPointAssessorOrganisationId = "EPA00001")
                               .Build();

            mockHttp.When($"http://localhost:59022/api/v1/organisations/organisation/{certificate.OrganisationId}")
            .Respond("application/json", JsonConvert.SerializeObject(organisation));

            mockHttp.When($"http://localhost:59022/api/v1/certificates/approvals/?pageSize=10&pageIndex=0&status=Submitted&privatelyFundedStatus=Approved")
            .Respond("application/json", JsonConvert.SerializeObject(paginatedResponseApproval));

            mockHttp.When($"http://localhost:59022/api/v1/certificates/approvals/?pageSize=10&pageIndex=0&status=Draft&privatelyFundedStatus=Rejected")
            .Respond("application/json", JsonConvert.SerializeObject(paginatedResponseRejections));

            mockHttp.When($"http://localhost:59022/api/v1/certificates/approvals/?pageSize=0&pageIndex=0&status=ToBeApproved&privatelyFundedStatus=SentForApproval")
            .Respond("application/json", JsonConvert.SerializeObject(paginatedResponseSentForApproval));


            mockHttp.When($"http://localhost:59022/api/v1/certificates/options/?stdCode={93}")
            .Respond("application/json", JsonConvert.SerializeObject(options));


            var certificateFirstNameViewModel = new CertificateFirstNameViewModel
            {
                Id                = new Guid("1f120837-72d5-40eb-a785-b3936210d47a"),
                FullName          = "James Corley",
                FirstName         = "James",
                FamilyName        = "Corley",
                GivenNames        = "James",
                Level             = 2,
                Standard          = "91",
                IsPrivatelyFunded = true
            };

            mockHttp
            .When(System.Net.Http.HttpMethod.Put, "http://localhost:59022/api/v1/certificates/update")
            .Respond(System.Net.HttpStatusCode.OK, "application/json", "{'status' : 'OK'}");

            var apiClient = new ApiClient(client, apiClientLoggerMock.Object, tokenServiceMock.Object);

            return(apiClient);
        }
 public async Task <IActionResult> FirstName(CertificateFirstNameViewModel vm)
 {
     return(await SaveViewModel(vm,
                                returnToIfModelNotValid : "~/Views/Certificate/FirstName.cshtml",
                                nextAction : RedirectToAction("StandardCode", "CertificatePrivateStandardCode"), action : CertificateActions.FirstName));
 }