public async Task And_We_Find_Matching_Apprenticeships_With_Correct_AccountId_Then_Returns_The_ApprenticeshipDetails( long accountId, long apprenticeshipId1, long apprenticeshipId2, [Frozen] Mock <ICommitmentsApiClient <CommitmentsConfiguration> > client, [Greedy] CommitmentsService sut) { var f = new Fixture(); var apprenticeDetails1 = f.Build <ApprenticeshipResponse>() .With(x => x.Id, apprenticeshipId1) .With(x => x.ApprenticeshipEmployerTypeOnApproval, ApprenticeshipEmployerType.Levy) .With(x => x.EmployerAccountId, accountId) .Create(); var apprenticeDetails2 = f.Build <ApprenticeshipResponse>() .With(x => x.Id, apprenticeshipId2) .With(x => x.ApprenticeshipEmployerTypeOnApproval, ApprenticeshipEmployerType.NonLevy) .With(x => x.EmployerAccountId, accountId) .Create(); client.Setup(x => x.Get <ApprenticeshipResponse>(It.Is <IGetApiRequest>(p => p.GetUrl == $"api/apprenticeships/{apprenticeshipId1}"))) .ReturnsAsync(apprenticeDetails1); client.Setup(x => x.Get <ApprenticeshipResponse>(It.Is <IGetApiRequest>(p => p.GetUrl == $"api/apprenticeships/{apprenticeshipId2}"))) .ReturnsAsync(apprenticeDetails2); var result = await sut.GetApprenticeshipDetails(accountId, new [] { apprenticeshipId1, apprenticeshipId2 }); result.Should().BeEquivalentTo(new [] { apprenticeDetails1, apprenticeDetails2 }); }
public async Task And_Api_Is_Unavailable_Then_Health_Check_Should_Return_False() { var sut = new CommitmentsService(null); var result = await sut.IsHealthy(); result.Should().BeFalse(); }
public async Task And_Api_Is_Available_And_Does_Not_Returns_Ok_Then_Health_Check_Should_Return_False( [Frozen] Mock <ICommitmentsApiClient <CommitmentsConfiguration> > client, [Greedy] CommitmentsService sut) { client.Setup(x => x.GetResponseCode(It.Is <IGetApiRequest>(p => p.GetUrl == "api/ping"))) .ReturnsAsync(HttpStatusCode.NotFound); var result = await sut.IsHealthy(); result.Should().BeFalse(); }
public void And_We_Find_Matching_Apprenticeships_With_Different_AccountIds_Then_Throws_UnauthorizedAccessException( long accountId, long[] apprenticeshipIds, ApprenticeshipResponse apprenticeshipDetail, [Frozen] Mock <ICommitmentsApiClient <CommitmentsConfiguration> > client, [Greedy] CommitmentsService sut) { client.Setup(x => x.Get <ApprenticeshipResponse>(It.IsAny <IGetApiRequest>())) .ReturnsAsync(apprenticeshipDetail); Assert.ThrowsAsync <UnauthorizedAccessException>(() => sut.GetApprenticeshipDetails(accountId, apprenticeshipIds)); }
public async Task Then_Returns_The_Apprenticeships( long accountId, long accountLegalEntityId, DateTime startDateFrom, DateTime startDateTo, GetApprenticeshipListResponse response, [Frozen] Mock <ICommitmentsApiClient <CommitmentsConfiguration> > client, [Greedy] CommitmentsService sut) { client.Setup(x => x.Get <GetApprenticeshipListResponse>(It.Is <IGetApiRequest>(p => p.GetUrl == $"api/apprenticeships?accountId={accountId}&accountLegalEntityId={accountLegalEntityId}&startDateRangeFrom={WebUtility.UrlEncode(startDateFrom.ToString("u"))}&startDateRangeTo={WebUtility.UrlEncode(startDateTo.ToString("u"))}"))) .ReturnsAsync(response); var result = await sut.Apprenticeships(accountId, accountLegalEntityId, startDateFrom, startDateTo); result.Should().BeEquivalentTo(response.Apprenticeships); }
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); }