Loading src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java +59 −83 Original line number Diff line number Diff line Loading @@ -286,6 +286,7 @@ public class ServiceRepoService { } @Transactional public Service addService(@Valid ServiceCreate service) { logger.info("Will add service: " + service.getName() ); Service s = new Service(); Loading Loading @@ -335,10 +336,11 @@ public class ServiceRepoService { Note noteItem = new Note(); noteItem.setText("Service " + s.getState() ); noteItem.setAuthor("API"); noteItem.setAuthor("SIM-638"); noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); s.addNoteItem(noteItem); s = this.serviceRepo.save( s ); raiseServiceCreateNotification(s); Loading @@ -353,22 +355,7 @@ public class ServiceRepoService { .orElse(null); } /** * @param id * @param servUpd * @param triggerServiceActionQueue * @param updatedFromParentService * @param updatedFromChildService * @return */ /** * @param id * @param servUpd * @param triggerServiceActionQueue * @param updatedFromParentService * @param updatedFromChildService * @return */ /** * @param id * @param servUpd Loading @@ -379,6 +366,9 @@ public class ServiceRepoService { */ @Transactional public Service updateService(String id, @Valid ServiceUpdate servUpd, boolean triggerServiceActionQueue, Service updatedFromParentService, Service updatedFromChildService ) { logger.debug("================> Will updateService = " + id ); //Service service = this.findByUuid(id); Service service = this.getServiceEager(id); Loading @@ -388,6 +378,9 @@ public class ServiceRepoService { return null; } logger.info("Will update service: " + service.getName() ); //logger.info("Will update service details: " + s.toString() ); Loading @@ -401,6 +394,7 @@ public class ServiceRepoService { } if (servUpd.getType()!=null) { service.setType(servUpd.getType()); } Loading Loading @@ -541,6 +535,8 @@ public class ServiceRepoService { } else { service.addServiceCharacteristicItem(n); if ( !n.getName().contains("::") ) { //it is not a child characteristic serviceCharacteristicChanged = true; charChangedForNotes += n.getName() + ", "; Loading Loading @@ -585,9 +581,10 @@ public class ServiceRepoService { if (stateChanged) { Note noteItem = new Note(); noteItem.setText("Service is " + service.getState() ); noteItem.setAuthor("API"); noteItem.setAuthor("SIM-638"); noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); service.addNoteItem(noteItem); logger.debug("=============SERVICE STATE ================================> " + service.getState() ); } Loading Loading @@ -635,9 +632,9 @@ public class ServiceRepoService { } service = this.serviceRepo.save( service ); String requestedServiceAsJson = null; try { requestedServiceAsJson = mapper.writeValueAsString( service ); Loading @@ -650,40 +647,28 @@ public class ServiceRepoService { * Save in ServiceActionQueueItem */ if (triggerServiceActionQueue && stateChanged) { Boolean childServiceCharacteristicChanged = false; if ( stateChanged ) { ServiceActionQueueItem saqi = new ServiceActionQueueItem(); saqi.setServiceRefId( id ); saqi.setOriginalServiceInJSON( originaServiceAsJson ); if (stateChanged) { if ( service.getState().equals( ServiceStateType.INACTIVE) ) { saqi.setAction( ServiceActionQueueAction.DEACTIVATE ); }else if ( service.getState().equals( ServiceStateType.TERMINATED) ) { saqi.setAction( ServiceActionQueueAction.TERMINATE ); } } if ( saqi.getAction() != ServiceActionQueueAction.NONE ) { this.addServiceActionQueueItem(service, saqi); } } // //here on any state change of a Service we must send an ActionQueueItem that reflects the state changed with the Action if ( stateChanged ) { ServiceActionQueueItem saqi = new ServiceActionQueueItem(); saqi.setServiceRefId( id ); saqi.setOriginalServiceInJSON( originaServiceAsJson ); if ( service.getState().equals( ServiceStateType.ACTIVE) ) { }else if ( service.getState().equals( ServiceStateType.ACTIVE) ) { saqi.setAction( ServiceActionQueueAction.EVALUATE_STATE_CHANGE_TOACTIVE ); this.addServiceActionQueueItem(service, saqi); }else if ( previousState!=null && previousState.equals( ServiceStateType.ACTIVE) ) { saqi.setAction( ServiceActionQueueAction.EVALUATE_STATE_CHANGE_TOINACTIVE ); this.addServiceActionQueueItem(service, saqi); } } if ( serviceCharacteristicChanged && service.getState().equals( ServiceStateType.ACTIVE) && previousState!=null && previousState.equals( ServiceStateType.ACTIVE) && triggerServiceActionQueue ) { if ( saqi.getAction() != ServiceActionQueueAction.NONE ) { logger.debug("==========addServiceActionQueueItem==============> saqi.getAction() = " + saqi.getAction() ); this.addServiceActionQueueItem(service, saqi); } } else if ( serviceCharacteristicChanged && service.getState().equals( ServiceStateType.ACTIVE) && previousState!=null && previousState.equals( ServiceStateType.ACTIVE) && triggerServiceActionQueue ) { ServiceActionQueueItem saqi = new ServiceActionQueueItem(); saqi.setServiceRefId( id ); saqi.setOriginalServiceInJSON( originaServiceAsJson ); Loading @@ -691,7 +676,9 @@ public class ServiceRepoService { if ( serviceCharacteristicChangedContainsPrimitive ) { saqi.setAction( ServiceActionQueueAction.EVALUATE_CHARACTERISTIC_CHANGED_MANODAY2 ); } logger.debug("==========addServiceActionQueueItem==============> serviceCharacteristicChanged && service.getState().eq charChangedForNotes= " + charChangedForNotes); this.addServiceActionQueueItem(service, saqi); childServiceCharacteristicChanged = true; } Loading @@ -706,8 +693,7 @@ public class ServiceRepoService { if (serviceRelationship.getRelationshipType().equals("ChildService") ) { if (serviceRelationship.getService() != null) { if (serviceCharacteristicChanged) { if (stateChanged || childServiceCharacteristicChanged) { if (updatedFromParentService == null || (updatedFromParentService != null && !updatedFromParentService.getId().equals(serviceRelationship.getService().getId()))) { // avoid circular ServiceActionQueueItem saqi = new ServiceActionQueueItem(); // this will trigger lcm rule to parent saqi.setServiceRefId(serviceRelationship.getService().getId()); Loading @@ -716,28 +702,16 @@ public class ServiceRepoService { } catch (JsonProcessingException e) { e.printStackTrace(); } saqi.setAction(ServiceActionQueueAction.EVALUATE_CHILD_CHARACTERISTIC_CHANGED); this.addServiceActionQueueItem(service, saqi); } } if (stateChanged) { if (updatedFromParentService == null || (updatedFromParentService != null && !updatedFromParentService.getId().equals(serviceRelationship.getService().getId()))) { // avoid circular ServiceActionQueueItem saqi = new ServiceActionQueueItem(); // this will trigger lcm rule to parent saqi.setServiceRefId(serviceRelationship.getService().getId()); try { saqi.setOriginalServiceInJSON( mapper.writeValueAsString( service ) ); //pass the child service as is } catch (JsonProcessingException e) { e.printStackTrace(); } saqi.setAction(ServiceActionQueueAction.EVALUATE_CHILD_STATE_CHANGE ); logger.debug("==========addServiceActionQueueItem==============> EVALUATE_CHILD_STATE_CHANGE " + charChangedForNotes); } else if ( childServiceCharacteristicChanged) { saqi.setAction(ServiceActionQueueAction.EVALUATE_CHILD_CHARACTERISTIC_CHANGED); logger.debug("==========addServiceActionQueueItem==============> EVALUATE_CHILD_CHARACTERISTIC_CHANGED " + charChangedForNotes); } this.addServiceActionQueueItem(service, saqi); } } } } } Loading Loading @@ -805,7 +779,6 @@ public class ServiceRepoService { // // TODO Auto-generated catch block // e.printStackTrace(); // } logger.info("======================================================================================================"); } return service; Loading Loading @@ -921,10 +894,10 @@ public class ServiceRepoService { if ( schart!= null ) { String teest = schart.getValue().getValue(); logger.info("schart size = " + teest.length() ); logger.debug("schart size = " + teest.length() ); logger.info("schart " + teest ); logger.info("======================================================================================================"); logger.debug("schart " + teest ); logger.debug("======================================================================================================"); } return res; Loading Loading @@ -1011,6 +984,9 @@ public class ServiceRepoService { //find any similar action inqueue and delete them, so to keep this one as the most recent List<ServiceActionQueueItem> result = this.serviceActionQueueRepo.findByServiceRefIdAndAction(item.getServiceRefId(), item.getAction()); logger.debug("Will add ServiceActionQueueItem ServiceRefId result: " +result.size() ); if (result.size()>0) { //essentially it will not delete any requests, but just return with not adding the new action since it is already exists return item; } this.serviceActionQueueRepo.deleteByServiceRefIdAndAction(item.getServiceRefId(), item.getAction()); } Loading src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -327,7 +327,7 @@ public class ServiceInventoryIntegrationTest { assertThat( responseSOUpd.getServiceCharacteristicByName( "DeploymentRequestID" ).getValue().getValue() ).isEqualTo( "1007" ) ; assertThat( serviceRepoService.findAllServiceActionQueueItems().size() ).isEqualTo( 3 ); assertThat( serviceRepoService.findAllServiceActionQueueItems().size() ).isEqualTo( 2 ); assertThat( serviceRepoService.findAllServiceActionQueueItems().get(0).getAction() ).isEqualTo(ServiceActionQueueAction.EVALUATE_STATE_CHANGE_TOACTIVE ); } Loading src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -310,6 +310,7 @@ public class ServiceOrderIntegrationTest { serviceOrderref.setId(responseSO.getId()); serviceOrderref.setServiceOrderItemId((new ArrayList<>(responseSO.getOrderItem())).get(0).getId()); s.addServiceOrderItem(serviceOrderref); s.setServiceCharacteristic( new ArrayList<>()); Service createdServ = serviceRepoService.addService(s); Loading src/test/java/org/etsi/osl/services/api/sim638/ServiceRepoServiceTest.java +47 −0 Original line number Diff line number Diff line Loading @@ -297,10 +297,19 @@ public class ServiceRepoServiceTest { assertThat( updatedService.getServiceCharacteristic().size() ).isEqualTo( 7 ); assertThat( updatedService.getSupportingResource().size() ).isEqualTo( 1); assertThat( updatedService.getServiceCharacteristicByName("NSLCM").getValue().getValue() ).isEqualTo( "nslcm_test" ); ResourceUpdate resourceUpdate = new ResourceUpdate(); org.etsi.osl.tmf.ri639.model.Characteristic resCharacteristicItem = new org.etsi.osl.tmf.ri639.model.Characteristic(); resCharacteristicItem.setName( "NSLCM" ); resCharacteristicItem.setValue( new Any("nslcm_test2")); resourceUpdate.addResourceCharacteristicItem(resCharacteristicItem); resCharacteristicItem.setName( "newChar" ); resCharacteristicItem.setValue( new Any("myval0")); resourceUpdate.addResourceCharacteristicItem(resCharacteristicItem); Loading Loading @@ -458,6 +467,44 @@ public class ServiceRepoServiceTest { return response; } @Test public void testFindNextStateBasedOnSupportingResources() throws Exception { Service s = new Service(); s.setState(ServiceStateType.RESERVED); List<Resource> rlist = new ArrayList<Resource>(); Resource r1 = new Resource(); Resource r2 = new Resource(); r1.setResourceStatus(ResourceStatusType.RESERVED); r2.setResourceStatus(ResourceStatusType.RESERVED); rlist.add(r1); rlist.add(r2); ServiceStateType nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.RESERVED ); r1.setResourceStatus(ResourceStatusType.AVAILABLE); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.RESERVED ); r2.setResourceStatus(ResourceStatusType.AVAILABLE); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.ACTIVE ); s.setState( ServiceStateType.ACTIVE ); r1.setResourceStatus(ResourceStatusType.UNKNOWN); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.ACTIVE ); r1.setResourceStatus(ResourceStatusType.SUSPENDED); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.TERMINATED ); s.setState( ServiceStateType.TERMINATED ); r1.setResourceStatus(ResourceStatusType.AVAILABLE); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.TERMINATED ); } private ServiceSpecification createServiceSpec(String sspectext, ServiceSpecificationCreate sspeccr1) throws Exception{ String response = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") Loading Loading
src/main/java/org/etsi/osl/tmf/sim638/service/ServiceRepoService.java +59 −83 Original line number Diff line number Diff line Loading @@ -286,6 +286,7 @@ public class ServiceRepoService { } @Transactional public Service addService(@Valid ServiceCreate service) { logger.info("Will add service: " + service.getName() ); Service s = new Service(); Loading Loading @@ -335,10 +336,11 @@ public class ServiceRepoService { Note noteItem = new Note(); noteItem.setText("Service " + s.getState() ); noteItem.setAuthor("API"); noteItem.setAuthor("SIM-638"); noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); s.addNoteItem(noteItem); s = this.serviceRepo.save( s ); raiseServiceCreateNotification(s); Loading @@ -353,22 +355,7 @@ public class ServiceRepoService { .orElse(null); } /** * @param id * @param servUpd * @param triggerServiceActionQueue * @param updatedFromParentService * @param updatedFromChildService * @return */ /** * @param id * @param servUpd * @param triggerServiceActionQueue * @param updatedFromParentService * @param updatedFromChildService * @return */ /** * @param id * @param servUpd Loading @@ -379,6 +366,9 @@ public class ServiceRepoService { */ @Transactional public Service updateService(String id, @Valid ServiceUpdate servUpd, boolean triggerServiceActionQueue, Service updatedFromParentService, Service updatedFromChildService ) { logger.debug("================> Will updateService = " + id ); //Service service = this.findByUuid(id); Service service = this.getServiceEager(id); Loading @@ -388,6 +378,9 @@ public class ServiceRepoService { return null; } logger.info("Will update service: " + service.getName() ); //logger.info("Will update service details: " + s.toString() ); Loading @@ -401,6 +394,7 @@ public class ServiceRepoService { } if (servUpd.getType()!=null) { service.setType(servUpd.getType()); } Loading Loading @@ -541,6 +535,8 @@ public class ServiceRepoService { } else { service.addServiceCharacteristicItem(n); if ( !n.getName().contains("::") ) { //it is not a child characteristic serviceCharacteristicChanged = true; charChangedForNotes += n.getName() + ", "; Loading Loading @@ -585,9 +581,10 @@ public class ServiceRepoService { if (stateChanged) { Note noteItem = new Note(); noteItem.setText("Service is " + service.getState() ); noteItem.setAuthor("API"); noteItem.setAuthor("SIM-638"); noteItem.setDate(OffsetDateTime.now(ZoneOffset.UTC) ); service.addNoteItem(noteItem); logger.debug("=============SERVICE STATE ================================> " + service.getState() ); } Loading Loading @@ -635,9 +632,9 @@ public class ServiceRepoService { } service = this.serviceRepo.save( service ); String requestedServiceAsJson = null; try { requestedServiceAsJson = mapper.writeValueAsString( service ); Loading @@ -650,40 +647,28 @@ public class ServiceRepoService { * Save in ServiceActionQueueItem */ if (triggerServiceActionQueue && stateChanged) { Boolean childServiceCharacteristicChanged = false; if ( stateChanged ) { ServiceActionQueueItem saqi = new ServiceActionQueueItem(); saqi.setServiceRefId( id ); saqi.setOriginalServiceInJSON( originaServiceAsJson ); if (stateChanged) { if ( service.getState().equals( ServiceStateType.INACTIVE) ) { saqi.setAction( ServiceActionQueueAction.DEACTIVATE ); }else if ( service.getState().equals( ServiceStateType.TERMINATED) ) { saqi.setAction( ServiceActionQueueAction.TERMINATE ); } } if ( saqi.getAction() != ServiceActionQueueAction.NONE ) { this.addServiceActionQueueItem(service, saqi); } } // //here on any state change of a Service we must send an ActionQueueItem that reflects the state changed with the Action if ( stateChanged ) { ServiceActionQueueItem saqi = new ServiceActionQueueItem(); saqi.setServiceRefId( id ); saqi.setOriginalServiceInJSON( originaServiceAsJson ); if ( service.getState().equals( ServiceStateType.ACTIVE) ) { }else if ( service.getState().equals( ServiceStateType.ACTIVE) ) { saqi.setAction( ServiceActionQueueAction.EVALUATE_STATE_CHANGE_TOACTIVE ); this.addServiceActionQueueItem(service, saqi); }else if ( previousState!=null && previousState.equals( ServiceStateType.ACTIVE) ) { saqi.setAction( ServiceActionQueueAction.EVALUATE_STATE_CHANGE_TOINACTIVE ); this.addServiceActionQueueItem(service, saqi); } } if ( serviceCharacteristicChanged && service.getState().equals( ServiceStateType.ACTIVE) && previousState!=null && previousState.equals( ServiceStateType.ACTIVE) && triggerServiceActionQueue ) { if ( saqi.getAction() != ServiceActionQueueAction.NONE ) { logger.debug("==========addServiceActionQueueItem==============> saqi.getAction() = " + saqi.getAction() ); this.addServiceActionQueueItem(service, saqi); } } else if ( serviceCharacteristicChanged && service.getState().equals( ServiceStateType.ACTIVE) && previousState!=null && previousState.equals( ServiceStateType.ACTIVE) && triggerServiceActionQueue ) { ServiceActionQueueItem saqi = new ServiceActionQueueItem(); saqi.setServiceRefId( id ); saqi.setOriginalServiceInJSON( originaServiceAsJson ); Loading @@ -691,7 +676,9 @@ public class ServiceRepoService { if ( serviceCharacteristicChangedContainsPrimitive ) { saqi.setAction( ServiceActionQueueAction.EVALUATE_CHARACTERISTIC_CHANGED_MANODAY2 ); } logger.debug("==========addServiceActionQueueItem==============> serviceCharacteristicChanged && service.getState().eq charChangedForNotes= " + charChangedForNotes); this.addServiceActionQueueItem(service, saqi); childServiceCharacteristicChanged = true; } Loading @@ -706,8 +693,7 @@ public class ServiceRepoService { if (serviceRelationship.getRelationshipType().equals("ChildService") ) { if (serviceRelationship.getService() != null) { if (serviceCharacteristicChanged) { if (stateChanged || childServiceCharacteristicChanged) { if (updatedFromParentService == null || (updatedFromParentService != null && !updatedFromParentService.getId().equals(serviceRelationship.getService().getId()))) { // avoid circular ServiceActionQueueItem saqi = new ServiceActionQueueItem(); // this will trigger lcm rule to parent saqi.setServiceRefId(serviceRelationship.getService().getId()); Loading @@ -716,28 +702,16 @@ public class ServiceRepoService { } catch (JsonProcessingException e) { e.printStackTrace(); } saqi.setAction(ServiceActionQueueAction.EVALUATE_CHILD_CHARACTERISTIC_CHANGED); this.addServiceActionQueueItem(service, saqi); } } if (stateChanged) { if (updatedFromParentService == null || (updatedFromParentService != null && !updatedFromParentService.getId().equals(serviceRelationship.getService().getId()))) { // avoid circular ServiceActionQueueItem saqi = new ServiceActionQueueItem(); // this will trigger lcm rule to parent saqi.setServiceRefId(serviceRelationship.getService().getId()); try { saqi.setOriginalServiceInJSON( mapper.writeValueAsString( service ) ); //pass the child service as is } catch (JsonProcessingException e) { e.printStackTrace(); } saqi.setAction(ServiceActionQueueAction.EVALUATE_CHILD_STATE_CHANGE ); logger.debug("==========addServiceActionQueueItem==============> EVALUATE_CHILD_STATE_CHANGE " + charChangedForNotes); } else if ( childServiceCharacteristicChanged) { saqi.setAction(ServiceActionQueueAction.EVALUATE_CHILD_CHARACTERISTIC_CHANGED); logger.debug("==========addServiceActionQueueItem==============> EVALUATE_CHILD_CHARACTERISTIC_CHANGED " + charChangedForNotes); } this.addServiceActionQueueItem(service, saqi); } } } } } Loading Loading @@ -805,7 +779,6 @@ public class ServiceRepoService { // // TODO Auto-generated catch block // e.printStackTrace(); // } logger.info("======================================================================================================"); } return service; Loading Loading @@ -921,10 +894,10 @@ public class ServiceRepoService { if ( schart!= null ) { String teest = schart.getValue().getValue(); logger.info("schart size = " + teest.length() ); logger.debug("schart size = " + teest.length() ); logger.info("schart " + teest ); logger.info("======================================================================================================"); logger.debug("schart " + teest ); logger.debug("======================================================================================================"); } return res; Loading Loading @@ -1011,6 +984,9 @@ public class ServiceRepoService { //find any similar action inqueue and delete them, so to keep this one as the most recent List<ServiceActionQueueItem> result = this.serviceActionQueueRepo.findByServiceRefIdAndAction(item.getServiceRefId(), item.getAction()); logger.debug("Will add ServiceActionQueueItem ServiceRefId result: " +result.size() ); if (result.size()>0) { //essentially it will not delete any requests, but just return with not adding the new action since it is already exists return item; } this.serviceActionQueueRepo.deleteByServiceRefIdAndAction(item.getServiceRefId(), item.getAction()); } Loading
src/test/java/org/etsi/osl/services/api/ServiceInventoryIntegrationTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -327,7 +327,7 @@ public class ServiceInventoryIntegrationTest { assertThat( responseSOUpd.getServiceCharacteristicByName( "DeploymentRequestID" ).getValue().getValue() ).isEqualTo( "1007" ) ; assertThat( serviceRepoService.findAllServiceActionQueueItems().size() ).isEqualTo( 3 ); assertThat( serviceRepoService.findAllServiceActionQueueItems().size() ).isEqualTo( 2 ); assertThat( serviceRepoService.findAllServiceActionQueueItems().get(0).getAction() ).isEqualTo(ServiceActionQueueAction.EVALUATE_STATE_CHANGE_TOACTIVE ); } Loading
src/test/java/org/etsi/osl/services/api/ServiceOrderIntegrationTest.java +1 −0 Original line number Diff line number Diff line Loading @@ -310,6 +310,7 @@ public class ServiceOrderIntegrationTest { serviceOrderref.setId(responseSO.getId()); serviceOrderref.setServiceOrderItemId((new ArrayList<>(responseSO.getOrderItem())).get(0).getId()); s.addServiceOrderItem(serviceOrderref); s.setServiceCharacteristic( new ArrayList<>()); Service createdServ = serviceRepoService.addService(s); Loading
src/test/java/org/etsi/osl/services/api/sim638/ServiceRepoServiceTest.java +47 −0 Original line number Diff line number Diff line Loading @@ -297,10 +297,19 @@ public class ServiceRepoServiceTest { assertThat( updatedService.getServiceCharacteristic().size() ).isEqualTo( 7 ); assertThat( updatedService.getSupportingResource().size() ).isEqualTo( 1); assertThat( updatedService.getServiceCharacteristicByName("NSLCM").getValue().getValue() ).isEqualTo( "nslcm_test" ); ResourceUpdate resourceUpdate = new ResourceUpdate(); org.etsi.osl.tmf.ri639.model.Characteristic resCharacteristicItem = new org.etsi.osl.tmf.ri639.model.Characteristic(); resCharacteristicItem.setName( "NSLCM" ); resCharacteristicItem.setValue( new Any("nslcm_test2")); resourceUpdate.addResourceCharacteristicItem(resCharacteristicItem); resCharacteristicItem.setName( "newChar" ); resCharacteristicItem.setValue( new Any("myval0")); resourceUpdate.addResourceCharacteristicItem(resCharacteristicItem); Loading Loading @@ -458,6 +467,44 @@ public class ServiceRepoServiceTest { return response; } @Test public void testFindNextStateBasedOnSupportingResources() throws Exception { Service s = new Service(); s.setState(ServiceStateType.RESERVED); List<Resource> rlist = new ArrayList<Resource>(); Resource r1 = new Resource(); Resource r2 = new Resource(); r1.setResourceStatus(ResourceStatusType.RESERVED); r2.setResourceStatus(ResourceStatusType.RESERVED); rlist.add(r1); rlist.add(r2); ServiceStateType nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.RESERVED ); r1.setResourceStatus(ResourceStatusType.AVAILABLE); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.RESERVED ); r2.setResourceStatus(ResourceStatusType.AVAILABLE); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.ACTIVE ); s.setState( ServiceStateType.ACTIVE ); r1.setResourceStatus(ResourceStatusType.UNKNOWN); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.ACTIVE ); r1.setResourceStatus(ResourceStatusType.SUSPENDED); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.TERMINATED ); s.setState( ServiceStateType.TERMINATED ); r1.setResourceStatus(ResourceStatusType.AVAILABLE); nstate = s.findNextStateBasedOnResourceList(rlist); assertThat(nstate).isEqualTo( ServiceStateType.TERMINATED ); } private ServiceSpecification createServiceSpec(String sspectext, ServiceSpecificationCreate sspeccr1) throws Exception{ String response = mvc.perform(MockMvcRequestBuilders.post("/serviceCatalogManagement/v4/serviceSpecification") Loading