From 1df19b74e8ce07cb5dea133516063e766d6342a0 Mon Sep 17 00:00:00 2001 From: nkyriakoulis Date: Thu, 11 Apr 2024 10:20:37 +0300 Subject: [PATCH] Update Supporting Services' end date upon Service Order Expected Completion Date update --- .../reposervices/ServiceOrderRepoService.java | 14 +++++++++++--- .../api/ServiceOrderIntegrationTest.java | 17 ++++++++++++++--- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/etsi/osl/tmf/so641/reposervices/ServiceOrderRepoService.java b/src/main/java/org/etsi/osl/tmf/so641/reposervices/ServiceOrderRepoService.java index d7214c4..cd5a502 100644 --- a/src/main/java/org/etsi/osl/tmf/so641/reposervices/ServiceOrderRepoService.java +++ b/src/main/java/org/etsi/osl/tmf/so641/reposervices/ServiceOrderRepoService.java @@ -539,6 +539,7 @@ public class ServiceOrderRepoService { ServiceOrder so = this.findByUuid(id); boolean stateChanged = false; + boolean expectedCompletionDateChanged = false; //logger.info("so:" + so.toString()); for (ServiceOrderItem oi : so.getOrderItem() ) { @@ -590,7 +591,7 @@ public class ServiceOrderRepoService { if ( serviceOrderUpd.getExpectedCompletionDate()!= null ) { so.setExpectedCompletionDate(serviceOrderUpd.getExpectedCompletionDate()); - + expectedCompletionDateChanged = true; } if ( serviceOrderUpd.getStartDate()!= null ) { @@ -655,8 +656,15 @@ public class ServiceOrderRepoService { so.addNoteItem(noteItem); } - - + // Update each Service's end date to the updated Service Order's expected completion date + if (expectedCompletionDateChanged) { + List services = serviceRepoService.getServicesFromOrderID(id); + + for (String serviceId : services) { + org.etsi.osl.tmf.sim638.model.Service service = serviceRepoService.findByUuid(serviceId); + service.setEndDate(so.getExpectedCompletionDate()); + } + } diff --git a/src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java b/src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java index 3368f21..017804b 100644 --- a/src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java +++ b/src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java @@ -33,6 +33,7 @@ import java.net.URI; import java.time.OffsetDateTime; import java.time.ZoneOffset; import java.util.ArrayList; +import java.util.List; import org.apache.camel.CamelContext; import org.apache.camel.RoutesBuilder; @@ -355,9 +356,19 @@ public class ServiceOrderIntegrationTest { ServiceOrder sspeccr1SO = JsonUtils.toJsonObj(sspectextSO, ServiceOrder.class); assertThat(sspeccr1SO).isNotNull(); - - - + + // Ensure that all Services' end dates were updated correctly + boolean allSupportingServicesEndDatesUpdatedToServiceOrderExpectedCompletionDate = true; + List services = serviceRepoService.getServicesFromOrderID(responseSO.getId()); + + for (String serviceId : services) { + Service service = serviceRepoService.findByUuid(serviceId); + if (!service.getEndDate().equals(responseSOUpd.getExpectedCompletionDate())) { + allSupportingServicesEndDatesUpdatedToServiceOrderExpectedCompletionDate = false; + break; + } + } + assertThat(allSupportingServicesEndDatesUpdatedToServiceOrderExpectedCompletionDate).isTrue(); } @WithMockUser(username="osadmin", roles = {"USER"}) -- GitLab