aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap
diff options
context:
space:
mode:
authorEzekielaRakotoarijaona <ezekiela.rakotoarijaona@orange.com>2019-01-11 14:53:30 +0100
committerEzekielaRakotoarijaona <ezekiela.rakotoarijaona@orange.com>2019-01-18 17:28:05 +0100
commit05733ab5105f440e44eb56dc37e6d14615c36454 (patch)
tree3989eb8552ab271c9d5ba0a37b99960c49b36259 /src/main/java/org/onap
parent09d6ce6112d61a7fc98c3038afce636b3e494f29 (diff)
Fix unit testing instability
Migration of most of the unit tests from JUnit to Karate Framework Remove of the scheduling tasks for testing. Change-Id: Ic51378443bd6c12f247fa50b2b08ee881264dac4 Issue-ID: EXTAPI-178 Signed-off-by: EzekielaRakotoarijaona <ezekiela.rakotoarijaona@orange.com>
Diffstat (limited to 'src/main/java/org/onap')
-rw-r--r--src/main/java/org/onap/nbi/Application.java21
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/ServiceOrderResource.java46
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/workflow/ExecutionTaskProcessorScheduler.java44
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java15
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/workflow/ServiceOrderCheckScheduler.java48
-rw-r--r--src/main/java/org/onap/nbi/configuration/RestConfiguration.java1
6 files changed, 134 insertions, 41 deletions
diff --git a/src/main/java/org/onap/nbi/Application.java b/src/main/java/org/onap/nbi/Application.java
index 05588b4..9f77ffe 100644
--- a/src/main/java/org/onap/nbi/Application.java
+++ b/src/main/java/org/onap/nbi/Application.java
@@ -1,22 +1,21 @@
/**
* Copyright (c) 2018 Orange
* <p>
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
* <p>
* http://www.apache.org/licenses/LICENSE-2.0
* <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
*/
package org.onap.nbi;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.scheduling.annotation.EnableAsync;
@SpringBootApplication
@@ -24,7 +23,11 @@ import org.springframework.scheduling.annotation.EnableAsync;
public class Application {
public static void main(String[] args) {
- SpringApplication.run(Application.class, args);
+ run(args);
+ }
+
+ public static ConfigurableApplicationContext run(String[] args) {
+ return SpringApplication.run(Application.class, args);
}
}
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/ServiceOrderResource.java b/src/main/java/org/onap/nbi/apis/serviceorder/ServiceOrderResource.java
index e3f4442..2cd1c9a 100644
--- a/src/main/java/org/onap/nbi/apis/serviceorder/ServiceOrderResource.java
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/ServiceOrderResource.java
@@ -33,8 +33,6 @@ import org.springframework.data.mongodb.core.query.Query;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.util.MultiValueMap;
import org.springframework.validation.Errors;
import org.springframework.web.bind.annotation.*;
@@ -44,11 +42,8 @@ import java.util.List;
@RestController
@RequestMapping("/serviceOrder")
-@EnableScheduling
public class ServiceOrderResource extends ResourceManagement {
-
-
@Autowired
ServiceOrderService serviceOrderService;
@@ -71,6 +66,8 @@ public class ServiceOrderResource extends ResourceManagement {
MultiCriteriaRequestBuilder multiCriteriaRequestBuilder;
+
+
@GetMapping(value = "/{serviceOrderId}", produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> getServiceOrder(@PathVariable String serviceOrderId,
@RequestParam MultiValueMap<String, String> params) {
@@ -123,26 +120,33 @@ public class ServiceOrderResource extends ResourceManagement {
}
- @Scheduled(fixedDelay = 5000)
- public void scheduleCheckServiceOrders() {
- List<ServiceOrder> acknowledgedOrders = serviceOrderService.findServiceOrdersByState(StateType.ACKNOWLEDGED);
- for (ServiceOrder serviceOrder : acknowledgedOrders) {
- ServiceOrderInfo serviceOrderInfo = checkOrderConsistenceManager.checkServiceOrder(serviceOrder);
- if (serviceOrderInfo.isServiceOrderRejected()) {
- serviceOrderService.updateOrderState(serviceOrder, StateType.REJECTED);
- } else if (serviceOrderInfo.isAllItemsCompleted()) {
- serviceOrderService.updateOrderState(serviceOrder, StateType.COMPLETED);
- } else {
- createAAICustomer.createAAICustomer(serviceOrder,serviceOrderInfo);
+
+ @PutMapping(value = "/test/{serviceOrderId}",consumes = MediaType.APPLICATION_JSON_VALUE)
+ public ResponseEntity<Object> checkServiceOrderRessource(@PathVariable String serviceOrderId,@RequestParam MultiValueMap<String, String> params){
+ ServiceOrder serviceOrder = serviceOrderService.findServiceOrderById(serviceOrderId);
+ serviceOrder = checkServiceOrder(serviceOrder);
+ JsonRepresentation filter = new JsonRepresentation(params);
+ return this.createResponse(serviceOrder,filter);
+ }
+
+
+ public ServiceOrder checkServiceOrder(ServiceOrder serviceOrder) {
+ ServiceOrderInfo serviceOrderInfo = checkOrderConsistenceManager.checkServiceOrder(serviceOrder);
+ if (serviceOrderInfo.isServiceOrderRejected()) {
+ serviceOrderService.updateOrderState(serviceOrder, StateType.REJECTED);
+ } else if (serviceOrderInfo.isAllItemsCompleted()) {
+ serviceOrderService.updateOrderState(serviceOrder, StateType.COMPLETED);
+ } else {
+ createAAICustomer.createAAICustomer(serviceOrder,serviceOrderInfo);
+ if(StateType.ACKNOWLEDGED==serviceOrder.getState()) {
+ createAAIServiceType.createAAIServiceType(serviceOrder, serviceOrderInfo);
if(StateType.ACKNOWLEDGED==serviceOrder.getState()) {
- createAAIServiceType.createAAIServiceType(serviceOrder, serviceOrderInfo);
- if(StateType.ACKNOWLEDGED==serviceOrder.getState()) {
- serviceOrchestratorManager.registerServiceOrder(serviceOrder, serviceOrderInfo);
- }
+ serviceOrchestratorManager.registerServiceOrder(serviceOrder, serviceOrderInfo);
}
-
}
+
}
+ return serviceOrder;
}
}
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/ExecutionTaskProcessorScheduler.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/ExecutionTaskProcessorScheduler.java
new file mode 100644
index 0000000..ee72515
--- /dev/null
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/ExecutionTaskProcessorScheduler.java
@@ -0,0 +1,44 @@
+/**
+ * Copyright (c) 2018 Orange
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.onap.nbi.apis.serviceorder.workflow;
+
+import java.util.List;
+import org.onap.nbi.apis.serviceorder.model.orchestrator.ExecutionTask;
+import org.onap.nbi.apis.serviceorder.repositories.ExecutionTaskRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Profile;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+
+@Profile("default")
+@Service
+@EnableScheduling
+public class ExecutionTaskProcessorScheduler {
+
+ @Autowired
+ ExecutionTaskRepository executionTaskRepository;
+
+ @Autowired
+ SOTaskProcessor soTaskProcessor;
+
+ // Using fixedDelay to mitigate against Scheduler queue backlog with fixedRate
+ @Scheduled(fixedDelayString = "${executionTask.schedule}", initialDelayString = "${executionTask.initial}")
+ private void processExecutionPlan() throws InterruptedException {
+ List<ExecutionTask> taskToExecute = executionTaskRepository.findByReliedTasksIsEmpty();
+ for (ExecutionTask executionTask : taskToExecute) {
+ soTaskProcessor.processOrderItem(executionTask);
+ }
+ }
+}
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java
index be8bdc0..26569f6 100644
--- a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskManager.java
@@ -12,8 +12,6 @@
*/
package org.onap.nbi.apis.serviceorder.workflow;
-import java.util.*;
-import java.util.Map.Entry;
import org.onap.nbi.apis.serviceorder.model.OrderItemRelationship;
import org.onap.nbi.apis.serviceorder.model.ServiceOrder;
import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem;
@@ -25,9 +23,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
+import java.util.*;
+import java.util.Map.Entry;
+
@Service
@EnableScheduling
public class SOTaskManager {
@@ -94,12 +94,5 @@ public class SOTaskManager {
registerOrderItemExecutionPlan(serviceOrder.getOrderItem(), serviceOrderInfoJson);
}
- // Using fixedDelay to mitigate against Scheduler queue backlog with fixedRate
- @Scheduled(fixedDelay = 2000)
- private void processExecutionPlan() throws InterruptedException {
- List<ExecutionTask> taskToExecute = executionTaskRepository.findByReliedTasksIsEmpty();
- for (ExecutionTask executionTask : taskToExecute) {
- soTaskProcessor.processOrderItem(executionTask);
- }
- }
+
}
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/ServiceOrderCheckScheduler.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/ServiceOrderCheckScheduler.java
new file mode 100644
index 0000000..0d9f050
--- /dev/null
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/ServiceOrderCheckScheduler.java
@@ -0,0 +1,48 @@
+/**
+ * Copyright (c) 2018 Orange
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package org.onap.nbi.apis.serviceorder.workflow;
+
+import java.util.List;
+import org.onap.nbi.apis.serviceorder.ServiceOrderResource;
+import org.onap.nbi.apis.serviceorder.model.ServiceOrder;
+import org.onap.nbi.apis.serviceorder.model.StateType;
+import org.onap.nbi.apis.serviceorder.service.ServiceOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Profile;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Service;
+
+@Profile("default")
+@Service
+@EnableScheduling
+public class ServiceOrderCheckScheduler {
+
+ @Autowired
+ ServiceOrderService serviceOrderService;
+
+ @Autowired
+ ServiceOrderResource serviceOrderResource;
+
+
+ @Scheduled(fixedDelayString = "${serviceOrder.schedule}", initialDelayString = "${serviceOrder.initial}")
+ public void scheduleCheckServiceOrders() {
+ List<ServiceOrder> acknowledgedOrders = serviceOrderService
+ .findServiceOrdersByState(StateType.ACKNOWLEDGED);
+ for (ServiceOrder serviceOrder : acknowledgedOrders) {
+ serviceOrderResource.checkServiceOrder(serviceOrder);
+ }
+ }
+
+}
diff --git a/src/main/java/org/onap/nbi/configuration/RestConfiguration.java b/src/main/java/org/onap/nbi/configuration/RestConfiguration.java
index 835ce24..92108a4 100644
--- a/src/main/java/org/onap/nbi/configuration/RestConfiguration.java
+++ b/src/main/java/org/onap/nbi/configuration/RestConfiguration.java
@@ -21,6 +21,7 @@ import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
+
@Configuration
public class RestConfiguration {