Example #1
0
        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);
            }
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }