Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 3
0
        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());
 }