public async Task GetLearner_LearnerNotFound() { // arrange long uln = 1234567890; string lastname = "NOT_FOUND"; int standardCode = 4321; var expectedResponse = new ApiResponse { StatusCode = (int)HttpStatusCode.BadRequest, Message = "Cannot find apprentice with the specified Uln, FamilyName & Standard" }; _MockHttp.When(HttpMethod.Get, $"{apiBaseAddress}/api/v1/learner/{uln}/{lastname}/{standardCode}") .Respond(HttpStatusCode.BadRequest, "application/json", JsonConvert.SerializeObject(expectedResponse)); // act var request = new GetLearnerRequest { Uln = uln, FamilyName = lastname, Standard = standardCode.ToString() }; var actual = await _ApiClient.GetLearner(request); // assert Assert.That(actual.Error, Is.Not.Null); Assert.That(actual.Error.StatusCode, Is.EqualTo(expectedResponse.StatusCode)); Assert.That(actual.Error.Message, Is.EqualTo(expectedResponse.Message)); Assert.That(actual.Learner, Is.Null); }
public async Task GetLearnerExample() { long uln = 1234567890; string lastName = "Blogs"; string standard = "1"; GetLearnerRequest learnerToGet = new GetLearnerRequest { Uln = uln, FamilyName = lastName, Standard = standard, }; if (learnerToGet.IsValid(out _)) { // NOTE: The External API performs validation, however it is a good idea to check beforehand await _LearnerApiClient.GetLearner(learnerToGet); } }
public async Task <GetLearnerResponse> GetLearner(GetLearnerRequest request) { var response = new GetLearnerResponse { Uln = request.Uln, FamilyName = request.FamilyName, Standard = request.Standard }; using (var apiResponse = await _httpClient.GetAsync($"api/v1/learner/{request.Uln}/{request.FamilyName}/{request.Standard}")) { if (apiResponse.IsSuccessStatusCode) { response.Learner = await apiResponse.Content.ReadAsAsync <Learner>(); } else { response.Error = await apiResponse.Content.ReadAsAsync <ApiResponse>(); } } return(response); }
public async Task GetLearner() { // arrange long uln = 1234567890; string lastname = "Bloggs"; int standardCode = 1; var standard = Builder <Models.Certificates.Standard> .CreateNew().With(s => s.StandardCode = standardCode).Build(); var learner = Builder <Models.Certificates.Learner> .CreateNew().With(l => l.Uln = uln).With(l => l.FamilyName = lastname).Build(); var learnerData = Builder <LearnerData> .CreateNew().With(cd => cd.Standard = standard) .With(cd => cd.Learner = learner) .With(cd => cd.LearningDetails = Builder <LearningDetails> .CreateNew().Build()) .Build(); var status = new Status { CompletionStatus = 1 }; var expectedResponse = new Learner { LearnerData = learnerData, Status = status, Certificate = null, EpaDetails = null }; _MockHttp.When(HttpMethod.Get, $"{apiBaseAddress}/api/v1/learner/{uln}/{lastname}/{standardCode}") .Respond(HttpStatusCode.OK, "application/json", JsonConvert.SerializeObject(expectedResponse)); // act var request = new GetLearnerRequest { Uln = uln, FamilyName = lastname, Standard = standardCode.ToString() }; var actual = await _ApiClient.GetLearner(request); // assert Assert.That(actual.Error, Is.Null); Assert.That(actual.Learner, Is.Not.Null); }