public async Task SearchApprenticeships_ReturnsSearchResults_WhenApiCallSucceeds([Frozen] Mock <ICommitmentsApiClient> apiClient, EmployerCommitmentsService sut, SearchApprenticeshipsRequest request, GetApprenticeshipsResponse response) { //Given apiClient.Setup(s => s.GetApprenticeships(It.Is <GetApprenticeshipsRequest>(s => s.CourseName == request.CourseName && s.EmployerName == request.EmployerName && s.ProviderName == request.ProviderName && s.ProviderId == request.Ukprn && s.SearchTerm == request.SearchTerm && s.StartDate == request.StartDate && s.EndDate == request.EndDate) , It.IsAny <CancellationToken>())).ReturnsAsync(response); //When var result = await sut.SearchApprenticeships(request, new CancellationToken()); //Then result.HasError.Should().BeFalse(); result.Apprenticeships.Count.Should().Be(response.Apprenticeships.Count()); result.Apprenticeships.Should().BeEquivalentTo(response.Apprenticeships. Select(s => new { s.ApprenticeshipStatus, s.EndDate, s.StartDate, s.CourseName, s.ProviderName, Ukprn = s.ProviderId, s.EmployerName, s.Uln, s.LastName, s.FirstName, s.Id, s.AccountLegalEntityId, s.ProviderRef, s.EmployerRef, s.DateOfBirth, s.PauseDate, s.CohortReference })); }
public async Task SearchApprenticeships_ReturnsErrorMessage_WhenApiCallFails([Frozen] Mock <ICommitmentsApiClient> apiClient, EmployerCommitmentsService sut, SearchApprenticeshipsRequest request, List <ErrorDetail> errors) { //Given apiClient.Setup(s => s.GetApprenticeships(It.Is <GetApprenticeshipsRequest>(s => s.CourseName == request.CourseName && s.EmployerName == request.EmployerName && s.ProviderName == request.ProviderName && s.ProviderId == request.Ukprn && s.SearchTerm == request.SearchTerm && s.StartDate == request.StartDate && s.EndDate == request.EndDate) , It.IsAny <CancellationToken>())).Throws(new CommitmentsApiModelException(errors)); //When var result = await sut.SearchApprenticeships(request, new CancellationToken()); //Then var errorMessage = GetErrorMessages(errors); result.ErrorMessage.Should().Be(errorMessage); }