public async Task UpdateProviderCourseContactDetails_Success_ReturnsNoContent( [Frozen] Mock <IMediator> mediator, [Greedy] ProviderCourseEditController sut, int ukprn, int larsCode, UpdateContactDetailsCommand command) { mediator.Setup(m => m.Send(It.Is <UpdateContactDetailsCommand>(c => c.Ukprn == ukprn && c.LarsCode == larsCode), It.IsAny <CancellationToken>())).ReturnsAsync(Unit.Value); var result = await sut.UpdateProviderCourseContactDetails(ukprn, larsCode, command); (result as NoContentResult).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 async Task UpdateProviderCourseContactDetails_Failed_ReturnsRespectiveStatusCode( [Frozen] Mock <IMediator> mediator, [Greedy] ProviderCourseEditController sut, int ukprn, int larsCode, UpdateContactDetailsCommand command) { mediator.Setup(m => m.Send(It.Is <UpdateContactDetailsCommand>(c => c.Ukprn == ukprn && c.LarsCode == larsCode), It.IsAny <CancellationToken>())).ThrowsAsync(new HttpRequestContentException("some error", HttpStatusCode.BadRequest)); var result = await sut.UpdateProviderCourseContactDetails(ukprn, larsCode, command); var statusCodeResult = result as StatusCodeResult; statusCodeResult.Should().NotBeNull(); statusCodeResult.StatusCode.Should().Be((int)HttpStatusCode.BadRequest); }
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 async Task <IActionResult> UpdateProviderCourseContactDetails(int ukprn, int larsCode, UpdateContactDetailsCommand command) { _logger.LogInformation("Outer API: Request to update course contact details for ukprn: {ukprn} larscode: {larscode}", ukprn, larsCode); command.Ukprn = ukprn; command.LarsCode = larsCode; try { await _mediator.Send(command); } catch (HttpRequestContentException ex) { _logger.LogError(ex, "Outer API: Failed request to update course contact details for ukprn: {ukprn} larscode: {larscode} with HttpStatusCode: {httpstatuscode}", ukprn, larsCode, ex.StatusCode); return(new StatusCodeResult((int)ex.StatusCode)); } return(NoContent()); }