public async Task Handle_CallsInnerApi_ReturnsValidResponse( GetStandardResponse apiResponseStandard, GetProviderCourseResponse apiResponseProviderCourse, List <GetProviderCourseLocationsResponse> apiResponseProviderCourseLocation, GetProviderCourseQuery query, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > apiClientMockCourse, [Frozen] Mock <IRoatpCourseManagementApiClient <RoatpV2ApiConfiguration> > apiClientMock, GetProviderCourseQueryHandler sut) { apiClientMockCourse.Setup(c => c.GetWithResponseCode <GetStandardResponse>(It.Is <GetStandardRequest>(c => c.GetUrl.Equals(new GetStandardRequest(query.LarsCode).GetUrl)))). ReturnsAsync(new ApiResponse <GetStandardResponse>(apiResponseStandard, HttpStatusCode.OK, "")); apiClientMock.Setup(c => c.GetWithResponseCode <GetProviderCourseResponse>(It.Is <GetProviderCourseRequest>(c => c.GetUrl.Equals(new GetProviderCourseRequest(query.Ukprn, query.LarsCode).GetUrl)))). ReturnsAsync(new ApiResponse <GetProviderCourseResponse>(apiResponseProviderCourse, HttpStatusCode.OK, "")); apiClientMock.Setup(c => c.GetWithResponseCode <List <GetProviderCourseLocationsResponse> >(It.Is <GetProviderCourseLocationsRequest>(c => c.GetUrl.Equals(new GetProviderCourseLocationsRequest(query.Ukprn, query.LarsCode).GetUrl)))). ReturnsAsync(new ApiResponse <List <GetProviderCourseLocationsResponse> >(apiResponseProviderCourseLocation, HttpStatusCode.OK, "")); var result = await sut.Handle(query, new CancellationToken()); result.Should().NotBeNull(); }
public async Task Handle_CallsApiClient( [Frozen] Mock <IRoatpCourseManagementApiClient <RoatpV2ApiConfiguration> > apiClientMock, UpdateContactDetailsCommandHandler sut, UpdateContactDetailsCommand command, CancellationToken cancellationToken, ProviderCourseUpdateRequest request, GetProviderCourseResponse apiResponse) { apiClientMock.Setup(a => a.Get <GetProviderCourseResponse>(It.IsAny <GetProviderCourseRequest>())).ReturnsAsync(apiResponse); await sut.Handle(command, cancellationToken); apiClientMock.Verify(a => a.Put(It.IsAny <ProviderCourseUpdateRequest>()), Times.Once); }
public void Handle_CallsApiClient_ReturnException( [Frozen] Mock <IRoatpCourseManagementApiClient <RoatpV2ApiConfiguration> > apiClientMock, UpdateContactDetailsCommandHandler sut, UpdateContactDetailsCommand command, CancellationToken cancellationToken, GetProviderCourseResponse apiResponse, HttpRequestContentException expectedException) { apiClientMock.Setup(a => a.Get <GetProviderCourseResponse>(It.IsAny <GetProviderCourseRequest>())).ReturnsAsync(apiResponse); apiClientMock.Setup(c => c.Put(It.IsAny <ProviderCourseUpdateRequest>())).Throws(expectedException); var actualException = Assert.ThrowsAsync <HttpRequestContentException>(() => sut.Handle(command, cancellationToken)); actualException.Should().Be(expectedException); }
public void Handle_CallsInnerApi_ReturnsExceptionWhenProviderCourseLocationsGetsBadRequest( GetStandardResponse apiResponseStandard, GetProviderCourseResponse apiResponseProviderCourse, GetProviderCourseQuery query, [Frozen] Mock <ICoursesApiClient <CoursesApiConfiguration> > apiClientMockCourse, [Frozen] Mock <IRoatpCourseManagementApiClient <RoatpV2ApiConfiguration> > apiClientMock, GetProviderCourseQueryHandler sut) { apiClientMockCourse.Setup(c => c.GetWithResponseCode <GetStandardResponse>(It.Is <GetStandardRequest>(c => c.GetUrl.Equals(new GetStandardRequest(query.LarsCode).GetUrl)))). ReturnsAsync(new ApiResponse <GetStandardResponse>(apiResponseStandard, HttpStatusCode.OK, "")); apiClientMock.Setup(c => c.GetWithResponseCode <GetProviderCourseResponse>(It.Is <GetProviderCourseRequest>(c => c.GetUrl.Equals(new GetProviderCourseRequest(query.Ukprn, query.LarsCode).GetUrl)))). ReturnsAsync(new ApiResponse <GetProviderCourseResponse>(apiResponseProviderCourse, HttpStatusCode.OK, "")); apiClientMock.Setup(c => c.GetWithResponseCode <List <GetProviderCourseLocationsResponse> >(It.Is <GetProviderCourseLocationsRequest>(c => c.GetUrl.Equals(new GetProviderCourseLocationsRequest(query.Ukprn, query.LarsCode).GetUrl)))) .ReturnsAsync(new ApiResponse <List <GetProviderCourseLocationsResponse> >(new List <GetProviderCourseLocationsResponse> { }, HttpStatusCode.BadRequest, "Error")); Assert.ThrowsAsync <HttpRequestContentException>(() => sut.Handle(query, new CancellationToken())); }