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));
        }
示例#5
0
        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);
        }