Example #1
0
        public async Task UpdateSubregions_Success_ReturnsNoContent(
            [Frozen] Mock <IMediator> mediator,
            [Greedy] ProviderCourseLocationRegionsEditController sut,
            int ukprn, int larsCode, UpdateStandardSubRegionsCommand command)
        {
            mediator.Setup(m => m.Send(It.Is <UpdateStandardSubRegionsCommand>(c => c.Ukprn == ukprn && c.LarsCode == larsCode), It.IsAny <CancellationToken>())).ReturnsAsync(HttpStatusCode.NoContent);

            var result = await sut.UpdateStandardSubRegions(ukprn, larsCode, command);

            (result as NoContentResult).Should().NotBeNull();
        }
        public void Handle_CallsApiClient_ReturnException(
            [Frozen] Mock <IRoatpCourseManagementApiClient <RoatpV2ApiConfiguration> > apiClientMock,
            UpdateStandardSubRegionsCommandHandler sut,
            UpdateStandardSubRegionsCommand command,
            CancellationToken cancellationToken,
            HttpRequestContentException expectedException)
        {
            apiClientMock.Setup(a => a.Get <List <ProviderLocationModel> >(It.IsAny <GetAllProviderLocationsQuery>())).Throws(expectedException);

            var actualException = Assert.ThrowsAsync <HttpRequestContentException>(() => sut.Handle(command, cancellationToken));

            actualException.Should().Be(expectedException);
        }
Example #3
0
        public async Task UpdateSubregions_Failed_ReturnsRespectiveStatusCode(
            [Frozen] Mock <IMediator> mediator,
            [Greedy] ProviderCourseLocationRegionsEditController sut,
            int ukprn, int larsCode, UpdateStandardSubRegionsCommand command)
        {
            mediator.Setup(m => m.Send(It.Is <UpdateStandardSubRegionsCommand>(c => c.Ukprn == ukprn && c.LarsCode == larsCode), It.IsAny <CancellationToken>())).ReturnsAsync(HttpStatusCode.BadRequest);

            var result = await sut.UpdateStandardSubRegions(ukprn, larsCode, command);

            var statusCodeResult = result as StatusCodeResult;

            statusCodeResult.Should().NotBeNull();
            statusCodeResult.StatusCode.Should().Be((int)HttpStatusCode.BadRequest);
        }
        public async Task Handle_CallsApiClient(
            [Frozen] Mock <IRoatpCourseManagementApiClient <RoatpV2ApiConfiguration> > apiClientMock,
            UpdateStandardSubRegionsCommandHandler sut,
            UpdateStandardSubRegionsCommand command,
            CancellationToken cancellationToken,
            List <ProviderLocationModel> apiResponse)
        {
            apiClientMock.Setup(a => a.Get <List <ProviderLocationModel> >(It.IsAny <GetAllProviderLocationsQuery>())).ReturnsAsync(apiResponse);

            var result = await sut.Handle(command, cancellationToken);

            apiClientMock.Verify(a => a.Get <List <ProviderLocationModel> >(It.IsAny <GetAllProviderLocationsQuery>()), Times.Once);
            apiClientMock.Verify(a => a.PostWithResponseCode <ProviderLocationsBulkInsertRequest>(It.IsAny <ProviderLocationsBulkInsertRequest>()), Times.Once);
            apiClientMock.Verify(a => a.Delete(It.IsAny <ProviderCourseLocationsBulkDeleteRequest>()), Times.Once);
            apiClientMock.Verify(a => a.PostWithResponseCode <ProviderCourseLocationBulkInsertRequest>(It.IsAny <ProviderCourseLocationBulkInsertRequest>()), Times.Once);
            apiClientMock.Verify(a => a.Delete(It.IsAny <ProviderLocationBulkDeleteRequest>()), Times.Once);

            Assert.IsNotNull(result);
        }
        public async Task <IActionResult> UpdateStandardSubRegions(int ukprn, int larsCode, UpdateStandardSubRegionsCommand command)
        {
            _logger.LogInformation("Outer API: Request to update standard subregions for ukprn: {ukprn} larscode: {larscode}", ukprn, larsCode);
            command.Ukprn    = ukprn;
            command.LarsCode = larsCode;
            var httpStatusCode = await _mediator.Send(command);

            if (httpStatusCode != HttpStatusCode.NoContent)
            {
                _logger.LogError("Outer API: Failed request to update standard subregions for ukprn: {ukprn} larscode: {larscode} with HttpStatusCode: {httpstatuscode}", ukprn, larsCode, httpStatusCode);
                return(new StatusCodeResult((int)httpStatusCode));
            }
            return(NoContent());
        }