public async Task ApprenticeshipFrameworksPatchTest(MessageAction messageAction) { var elementId = Guid.NewGuid(); //Arrange var patchApprenticeshipFrameworksModel = new PatchApprenticeshipFrameworksModel() { ActionType = messageAction, Id = elementId }; currentOpportunitiesSegmentModel.Data.Apprenticeships = new Apprenticeships() { Frameworks = new List <Data.Models.ApprenticeshipFramework>(), }; currentOpportunitiesSegmentModel.Data.Apprenticeships.Frameworks.Add(new Data.Models.ApprenticeshipFramework() { Id = elementId }); A.CallTo(() => FakeRepository.UpsertAsync(A <CurrentOpportunitiesSegmentModel> .Ignored)).Returns(HttpStatusCode.OK); //Act var result = await CurrentOpportunitiesSegmentService.PatchApprenticeshipFrameworksAsync(patchApprenticeshipFrameworksModel, testGuid).ConfigureAwait(false); //Asserts A.CallTo(() => FakeCurrentOpportunitiesSegmentUtilities.GetReturnStatusForNullElementPatchRequest(A <MessageAction> .Ignored)).MustNotHaveHappened(); result.Should().Be(HttpStatusCode.OK); }
public async Task ApprenticeshipFrameworksPatchFrameworksNullTest() { //Arrange var patchApprenticeshipFrameworksModel = new PatchApprenticeshipFrameworksModel() { ActionType = MessageAction.Deleted }; A.CallTo(() => FakeCurrentOpportunitiesSegmentUtilities.GetReturnStatusForNullElementPatchRequest(A <MessageAction> .Ignored)).Returns(HttpStatusCode.AlreadyReported); //Act var result = await CurrentOpportunitiesSegmentService.PatchApprenticeshipFrameworksAsync(patchApprenticeshipFrameworksModel, testGuid).ConfigureAwait(false); //Asserts result.Should().Be(HttpStatusCode.AlreadyReported); }
public async Task <HttpStatusCode> PatchApprenticeshipFrameworksAsync(PatchApprenticeshipFrameworksModel patchModel, Guid documentId) { if (patchModel is null) { throw new ArgumentNullException(nameof(patchModel)); } var existingSegmentModel = await GetByIdAsync(documentId).ConfigureAwait(false); var currentOpportunitiesSegmentPatchStatus = currentOpportunitiesSegmentUtilities.IsSegementOkToPatch(existingSegmentModel, patchModel.SequenceNumber); if (!currentOpportunitiesSegmentPatchStatus.OkToPatch) { return(currentOpportunitiesSegmentPatchStatus.ReturnStatusCode); } if (existingSegmentModel.Data.Apprenticeships == null) { existingSegmentModel.Data.Apprenticeships = new Apprenticeships(); } if (existingSegmentModel.Data.Apprenticeships.Frameworks == null) { existingSegmentModel.Data.Apprenticeships.Frameworks = new List <Data.Models.ApprenticeshipFramework>(); } var existingApprenticeshipFrameworks = existingSegmentModel.Data?.Apprenticeships?.Frameworks?.FirstOrDefault(f => f.Id == patchModel.Id); if (existingApprenticeshipFrameworks is null) { return(currentOpportunitiesSegmentUtilities.GetReturnStatusForNullElementPatchRequest(patchModel.ActionType)); } if (patchModel.ActionType == MessageAction.Deleted) { existingSegmentModel.Data.Apprenticeships.Frameworks.Remove(existingApprenticeshipFrameworks); } else { mapper.Map(patchModel, existingApprenticeshipFrameworks); } existingSegmentModel.SequenceNumber = patchModel.SequenceNumber; return(await UpsertAndRefreshSegmentModel(existingSegmentModel).ConfigureAwait(false)); }
public async Task SegmentControllerPatchApprenticeshipFrameworksReturnsBadRequestWhenNullPatchmodel(string mediaTypeName) { // Arrange const HttpStatusCode expectedResponse = HttpStatusCode.BadRequest; PatchApprenticeshipFrameworksModel patchModel = null; var documentId = Guid.NewGuid(); var controller = BuildSegmentController(mediaTypeName); // Act var result = await controller.PatchApprenticeshipFrameworks(patchModel, documentId).ConfigureAwait(false); // Assert var statusResult = Assert.IsType <BadRequestResult>(result); Assert.Equal((int)expectedResponse, statusResult.StatusCode); controller.Dispose(); }
public async Task ApprenticeshipFrameworksPatchFrameworksReturnsNotFoundForMissingSegment() { //Arrange var doNotPatchResult = new CurrentOpportunitiesSegmentPatchStatus() { OkToPatch = false, ReturnStatusCode = HttpStatusCode.NotFound }; var patchApprenticeshipFrameworksModel = new PatchApprenticeshipFrameworksModel() { ActionType = MessageAction.Deleted }; A.CallTo(() => FakeRepository.GetAsync(A <Expression <Func <CurrentOpportunitiesSegmentModel, bool> > > .Ignored)).Returns(null as CurrentOpportunitiesSegmentModel); A.CallTo(() => FakeCurrentOpportunitiesSegmentUtilities.IsSegementOkToPatch(A <CurrentOpportunitiesSegmentModel> .Ignored, A <long> .Ignored)).Returns(doNotPatchResult); //Act var result = await CurrentOpportunitiesSegmentService.PatchApprenticeshipFrameworksAsync(patchApprenticeshipFrameworksModel, testGuid).ConfigureAwait(false); //Asserts result.Should().Be(HttpStatusCode.NotFound); }
public async Task <IActionResult> PatchApprenticeshipFrameworks([FromBody] PatchApprenticeshipFrameworksModel patchApprenticeshipFrameworksModel, Guid documentId) { logService.LogInformation($"{nameof(PatchApprenticeshipFrameworks)} has been called"); if (patchApprenticeshipFrameworksModel == null) { return(BadRequest()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var response = await currentOpportunitiesSegmentService.PatchApprenticeshipFrameworksAsync(patchApprenticeshipFrameworksModel, documentId).ConfigureAwait(false); if (response != HttpStatusCode.OK && response != HttpStatusCode.Created) { logService.LogError($"{nameof(PatchApprenticeshipFrameworks)}: Error while patching Apprenticeship Frameworks content for Job Profile with Id: {patchApprenticeshipFrameworksModel.JobProfileId} for the {patchApprenticeshipFrameworksModel.SocCode} soc code"); } return(new StatusCodeResult((int)response)); }