public async Task SubmitCertificate_InvalidFamilyName() { // arrange var submitCertificate = new SubmitCertificateRequest { Uln = 1234567890, FamilyName = "INVALID", StandardCode = 1 }; var expectedValidationErrors = new List <string> { "Cannot find apprentice with the specified Uln, FamilyName & Standard" }; var expectedResponse = new List <SubmitCertificateResponse> { new SubmitCertificateResponse { Certificate = null, ValidationErrors = expectedValidationErrors } }; _MockHttp.When(HttpMethod.Post, $"{apiBaseAddress}/api/v1/certificate/submit") .Respond(HttpStatusCode.OK, "application/json", JsonConvert.SerializeObject(expectedResponse)); // act var actual = await _ApiClient.SubmitCertificates(new List <SubmitCertificateRequest> { submitCertificate }); // assert Assert.That(actual, Has.Count.EqualTo(1)); Assert.That(actual.First().ValidationErrors, Is.EqualTo(expectedResponse.First().ValidationErrors)); Assert.That(actual.First().Certificate, Is.Null); }
public async Task SubmitCertificatesExample() { long uln = 1234567890; string lastName = "Blogs"; int standardCode = 1; string standardReference = "ST0127"; string certificateReference = "00012001"; SubmitCertificateRequest certificateToSubmit = new SubmitCertificateRequest { Uln = uln, FamilyName = lastName, StandardCode = standardCode, StandardReference = standardReference, CertificateReference = certificateReference }; if (certificateToSubmit.IsValid(out _)) { // NOTE: The External API performs validation, however it is a good idea to check beforehand await _CertificateApiClient.SubmitCertificates(new List <SubmitCertificateRequest> { certificateToSubmit }); } }
public async Task SubmitCertificate_Using_StandardReference() { // arrange var submitCertificate = new SubmitCertificateRequest { Uln = 9876543210, FamilyName = "Blogs", StandardReference = "1" }; var certificateData = Builder <CertificateData> .CreateNew().With(cd => cd.CertificateReference = "DRAFT CERTIFICATE") .With(cd => cd.Standard = Builder <Standard> .CreateNew().With(s => s.StandardCode = null).With(s => s.StandardReference = "1").Build()) .With(cd => cd.Learner = Builder <Learner> .CreateNew().Build()) .With(cd => cd.LearningDetails = Builder <LearningDetails> .CreateNew().Build()) .With(cd => cd.PostalContact = Builder <PostalContact> .CreateNew().Build()) .Build(); var status = new Status { CurrentStatus = "Submitted" }; var created = new Created { CreatedAt = DateTime.UtcNow.AddHours(-1), CreatedBy = "Test" }; var submitted = new Submitted { SubmittedAt = DateTime.UtcNow, SubmittedBy = "Test" }; var certificate = new Certificate { CertificateData = certificateData, Status = status, Created = created, Submitted = submitted }; var expectedResponse = new List <SubmitCertificateResponse> { new SubmitCertificateResponse { Certificate = certificate } }; _MockHttp.When(HttpMethod.Post, $"{apiBaseAddress}/api/v1/certificate/submit") .Respond(HttpStatusCode.OK, "application/json", JsonConvert.SerializeObject(expectedResponse)); // act var actual = await _ApiClient.SubmitCertificates(new List <SubmitCertificateRequest> { submitCertificate }); // assert Assert.That(actual, Has.Count.EqualTo(1)); Assert.That(actual.First().ValidationErrors, Has.Count.EqualTo(0)); Assert.That(actual.First().Certificate, Is.EqualTo(expectedResponse.First().Certificate)); }