public async Task WhenCommitmentDoNotExist_ThenReturnEmptyString()
        {
            var apiClientMock     = new Mock <ICommitmentsApiClient>();
            var invalidSearchTerm = "000";

            var emptyResponse = new GetApprenticeshipsResponse {
                Apprenticeships = Enumerable.Empty <GetApprenticeshipsResponse.ApprenticeshipDetailsResponse>()
            };

            apiClientMock
            .Setup(a => a
                   .GetApprenticeships(It.Is <GetApprenticeshipsRequest>(x => x.SearchTerm == invalidSearchTerm), It.IsAny <CancellationToken>())).ReturnsAsync(emptyResponse);
            var sut    = new CommitmentsService(apiClientMock.Object);
            var result = await sut.GetApprenticesName(invalidSearchTerm, 123);

            Assert.IsEmpty(result);
        }
        public async Task WhenCommitmentExists_ThenReturnApprenticesName()
        {
            var firstName         = "firstName";
            var lastName          = "lastName";
            var validSearchTerm   = "123";
            var apiClientMock     = new Mock <ICommitmentsApiClient>();
            var populatedResponse = new GetApprenticeshipsResponse
            {
                Apprenticeships = new[]
                { new GetApprenticeshipsResponse.ApprenticeshipDetailsResponse()
                  {
                      FirstName = firstName, LastName = lastName
                  } }
            };

            apiClientMock
            .Setup(a => a
                   .GetApprenticeships(It.Is <GetApprenticeshipsRequest>(x => x.SearchTerm == validSearchTerm), It.IsAny <CancellationToken>())).ReturnsAsync(populatedResponse);
            var sut    = new CommitmentsService(apiClientMock.Object);
            var result = await sut.GetApprenticesName(validSearchTerm, 123);

            Assert.AreEqual($"{firstName} {lastName}", result);
        }