Fix unit testing instability
[externalapi/nbi.git] / src / test / java / org / onap / nbi / apis / assertions / ServiceOrderExecutionTaskAssertions.java
1 /**
2  *     Copyright (c) 2018 Orange
3  *
4  *     Licensed under the Apache License, Version 2.0 (the "License");
5  *     you may not use this file except in compliance with the License.
6  *     You may obtain a copy of the License at
7  *
8  *         http://www.apache.org/licenses/LICENSE-2.0
9  *
10  *     Unless required by applicable law or agreed to in writing, software
11  *     distributed under the License is distributed on an "AS IS" BASIS,
12  *     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  *     See the License for the specific language governing permissions and
14  *     limitations under the License.
15  */
16 package org.onap.nbi.apis.assertions;
17
18 import java.util.ArrayList;
19 import java.util.Date;
20 import java.util.LinkedHashMap;
21 import java.util.List;
22 import org.onap.nbi.apis.serviceorder.model.ActionType;
23 import org.onap.nbi.apis.serviceorder.model.OrderItemRelationship;
24 import org.onap.nbi.apis.serviceorder.model.OrderRelationship;
25 import org.onap.nbi.apis.serviceorder.model.RelatedParty;
26 import org.onap.nbi.apis.serviceorder.model.RelationshipType;
27 import org.onap.nbi.apis.serviceorder.model.ResourceSpecification;
28 import org.onap.nbi.apis.serviceorder.model.Service;
29 import org.onap.nbi.apis.serviceorder.model.ServiceCharacteristic;
30 import org.onap.nbi.apis.serviceorder.model.ServiceOrder;
31 import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem;
32 import org.onap.nbi.apis.serviceorder.model.ServiceSpecificationRef;
33 import org.onap.nbi.apis.serviceorder.model.StateType;
34 import org.onap.nbi.apis.serviceorder.model.Value;
35 import org.onap.nbi.apis.serviceorder.model.consumer.SubscriberInfo;
36 import org.onap.nbi.apis.serviceorder.model.orchestrator.ExecutionTask;
37 import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderInfo;
38 import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderItemInfo;
39 import org.onap.nbi.apis.serviceorder.repositories.ExecutionTaskRepository;
40 import org.onap.nbi.apis.serviceorder.repositories.ServiceOrderRepository;
41 import org.onap.nbi.apis.serviceorder.utils.JsonEntityConverter;
42
43
44 public class ServiceOrderExecutionTaskAssertions {
45
46     public static ServiceOrder createTestServiceOrderRejected() {
47         ServiceOrder serviceOrder = new ServiceOrder();
48         serviceOrder.setExternalId("LudONAP001");
49         serviceOrder.setPriority("1");
50         serviceOrder.setDescription("Ludo first ONAP Order");
51         serviceOrder.setCategory("Consumer");
52         serviceOrder.setRequestedStartDate(new Date());
53         serviceOrder.setRequestedCompletionDate(new Date());
54
55         RelatedParty party = new RelatedParty();
56         party.setId("6490");
57         party.setRole("ONAPcustomer");
58         party.setReferredType("individual");
59         party.setName("Jean Pontus");
60         List<RelatedParty> relatedPartyList = new ArrayList<>();
61         relatedPartyList.add(party);
62         serviceOrder.setRelatedParty(relatedPartyList);
63
64         List<ServiceOrderItem> items = new ArrayList<>();
65
66         ServiceOrderItem itemA = new ServiceOrderItem();
67         itemA.id("A");
68         itemA.action(ActionType.ADD);
69         Service serviceA = new Service();
70         serviceA.setServiceState("active");
71         ServiceSpecificationRef serviceSpecificationRefA = new ServiceSpecificationRef();
72         serviceSpecificationRefA.setId("333");
73         serviceA.setServiceSpecification(serviceSpecificationRefA);
74         itemA.setService(serviceA);
75         items.add(itemA);
76
77         ServiceOrderItem itemB = new ServiceOrderItem();
78         itemB.id("B");
79         itemB.action(ActionType.ADD);
80         Service serviceB = new Service();
81         serviceB.setServiceState("active");
82         ServiceSpecificationRef serviceSpecificationRefB = new ServiceSpecificationRef();
83         serviceSpecificationRefB.setId("1e3feeb0-8e36-46c6-862c-236d9c626439");
84         serviceB.setServiceSpecification(serviceSpecificationRefB);
85         itemB.setService(serviceB);
86         List<OrderItemRelationship> orderItemRelationships = new ArrayList<>();
87         OrderItemRelationship orderItemRelationship = new OrderItemRelationship();
88         orderItemRelationship.setId("A");
89         orderItemRelationships.add(orderItemRelationship);
90         itemB.setOrderItemRelationship(orderItemRelationships);
91         items.add(itemB);
92         serviceOrder.setOrderItem(items);
93         return serviceOrder;
94
95     }
96
97
98     public static ServiceOrder createTestServiceOrder(ActionType actionType) {
99         ServiceOrder serviceOrder = new ServiceOrder();
100         serviceOrder.setExternalId("LudONAP001");
101         serviceOrder.setPriority("1");
102         serviceOrder.setDescription("Ludo first ONAP Order");
103         serviceOrder.setCategory("Consumer");
104         serviceOrder.setRequestedStartDate(new Date());
105         serviceOrder.setRequestedCompletionDate(new Date());
106         serviceOrder.setBaseType("toto");
107         serviceOrder.setCompletionDateTime(new Date());
108         serviceOrder.setExpectedCompletionDate(new Date());
109         serviceOrder.setSchemaLocation("/tutu");
110
111         OrderRelationship orderRelationship = new OrderRelationship();
112         orderRelationship.setId("test");
113         orderRelationship.setHref("test");
114         orderRelationship.setReferredType("test");
115         orderRelationship.setType("type");
116         List<OrderRelationship> relationships = new ArrayList<>();
117         serviceOrder.setOrderRelationship(relationships);
118
119         RelatedParty party = new RelatedParty();
120         party.setId("6490");
121         party.setRole("ONAPcustomer");
122         party.setReferredType("individual");
123         party.setName("Jean Pontus");
124         List<RelatedParty> relatedPartyList = new ArrayList<>();
125         relatedPartyList.add(party);
126         serviceOrder.setRelatedParty(relatedPartyList);
127
128         List<ServiceOrderItem> items = new ArrayList<>();
129
130         ServiceOrderItem itemA = new ServiceOrderItem();
131         itemA.id("A");
132         itemA.action(actionType);
133         Service serviceA = new Service();
134         if (actionType != ActionType.ADD) {
135             serviceA.setId("e4688e5f-61a0-4f8b-ae02-a2fbde623bcb");
136         }
137         serviceA.setServiceState("active");
138         ServiceSpecificationRef serviceSpecificationRefA = new ServiceSpecificationRef();
139         serviceSpecificationRefA.setId("1e3feeb0-8e36-46c6-862c-236d9c626439");
140         serviceA.setServiceSpecification(serviceSpecificationRefA);
141         itemA.setService(serviceA);
142         items.add(itemA);
143
144         ServiceOrderItem itemB = new ServiceOrderItem();
145         itemB.id("B");
146         itemB.action(actionType);
147         Service serviceB = new Service();
148         if (actionType != ActionType.ADD) {
149             serviceB.setId("e4688e5f-61a0-4f8b-ae02-a2fbde623bcb");
150         }
151         serviceB.setServiceState("active");
152         ServiceSpecificationRef serviceSpecificationRefB = new ServiceSpecificationRef();
153         serviceSpecificationRefB.setId("1e3feeb0-8e36-46c6-862c-236d9c626439");
154         serviceB.setServiceSpecification(serviceSpecificationRefB);
155         itemB.setService(serviceB);
156         List<OrderItemRelationship> orderItemRelationships = new ArrayList<>();
157         OrderItemRelationship orderItemRelationship = new OrderItemRelationship();
158         orderItemRelationship.setId("A");
159         orderItemRelationship.setType(RelationshipType.RELIESON);
160         orderItemRelationships.add(orderItemRelationship);
161         itemB.setOrderItemRelationship(orderItemRelationships);
162         items.add(itemB);
163         serviceOrder.setOrderItem(items);
164         return serviceOrder;
165
166     }
167
168
169     public static ExecutionTask setUpBddForExecutionTaskSucess(ServiceOrderRepository serviceOrderRepository,
170         ExecutionTaskRepository executionTaskRepository,
171         ActionType actionType) {
172         ServiceOrder testServiceOrder = createTestServiceOrder(actionType);
173
174         for (ServiceOrderItem serviceOrderItem : testServiceOrder.getOrderItem()) {
175             serviceOrderItem.setState(StateType.ACKNOWLEDGED);
176         }
177
178         testServiceOrder.setState(StateType.ACKNOWLEDGED);
179         testServiceOrder.setId("test");
180         serviceOrderRepository.save(testServiceOrder);
181
182         LinkedHashMap<String, String> sdcResponse = new LinkedHashMap<>();
183         sdcResponse.put("invariantUUID", "uuid");
184         sdcResponse.put("name", "vFW");
185         sdcResponse.put("version", "v1");
186         sdcResponse.put("category", "NonE2E");
187
188         ServiceOrderInfo serviceOrderInfo = new ServiceOrderInfo();
189         serviceOrderInfo.setServiceOrderId("test");
190         SubscriberInfo subscriberInfo = new SubscriberInfo();
191         subscriberInfo.setGlobalSubscriberId("6490");
192         subscriberInfo.setSubscriberName("edgar");
193         serviceOrderInfo.setSubscriberInfo(subscriberInfo);
194
195         ServiceOrderItemInfo serviceOrderItemInfoA = new ServiceOrderItemInfo();
196         serviceOrderItemInfoA.setId("A");
197         serviceOrderItemInfoA.setCatalogResponse(sdcResponse);
198
199         ServiceOrderItemInfo serviceOrderItemInfoB = new ServiceOrderItemInfo();
200         serviceOrderItemInfoB.setId("B");
201         serviceOrderItemInfoB.setCatalogResponse(sdcResponse);
202         serviceOrderInfo.addServiceOrderItemInfos("A", serviceOrderItemInfoA);
203         serviceOrderInfo.addServiceOrderItemInfos("B", serviceOrderItemInfoB);
204
205         String json = JsonEntityConverter.convertServiceOrderInfoToJson(serviceOrderInfo);
206
207         ExecutionTask executionTaskA = new ExecutionTask();
208         executionTaskA.setCreateDate(new Date());
209         executionTaskA.setOrderItemId("A");
210         executionTaskA.setServiceOrderInfoJson(json);
211         executionTaskA = executionTaskRepository.save(executionTaskA);
212         ExecutionTask executionTaskB = new ExecutionTask();
213         executionTaskB.setCreateDate(new Date());
214         executionTaskB.setOrderItemId("B");
215         executionTaskB.setReliedTasks(String.valueOf(executionTaskA.getInternalId()));
216         executionTaskB.setServiceOrderInfoJson(json);
217         executionTaskRepository.save(executionTaskB);
218         return executionTaskA;
219     }
220
221     public static ExecutionTask setUpBddForE2EExecutionTaskSucess(ServiceOrderRepository serviceOrderRepository,
222             ExecutionTaskRepository executionTaskRepository,
223             ActionType actionType) {
224             ServiceOrder testServiceOrder = createTestServiceOrder(actionType);
225
226             for (ServiceOrderItem serviceOrderItem : testServiceOrder.getOrderItem()) {
227                 serviceOrderItem.setState(StateType.ACKNOWLEDGED);
228                 List<ServiceCharacteristic> serviceCharacteristics = new ArrayList();
229                 ServiceCharacteristic serviceCharacteristic1 = new ServiceCharacteristic();
230                 serviceCharacteristic1.setName("access-site-id");
231                 Value value1 = new Value();
232                 value1.setServiceCharacteristicValue("1234765");
233                                 serviceCharacteristic1.setValue(value1);
234                                 serviceCharacteristics.add(serviceCharacteristic1);
235                                 ServiceCharacteristic serviceCharacteristic2 = new ServiceCharacteristic();
236                 serviceCharacteristic2.setName("provider-site-id");
237                 Value value2 = new Value();
238                 value2.setServiceCharacteristicValue("654321");
239                                 serviceCharacteristic2.setValue(value2);
240                                 serviceCharacteristics.add(serviceCharacteristic2);
241                                 serviceOrderItem.getService().setServiceCharacteristic(serviceCharacteristics);
242             }
243
244             testServiceOrder.setState(StateType.ACKNOWLEDGED);
245             testServiceOrder.setId("test");
246             serviceOrderRepository.save(testServiceOrder);
247
248             LinkedHashMap<String, Object> sdcResponse = new LinkedHashMap<>();
249             sdcResponse.put("invariantUUID", "uuid");
250             sdcResponse.put("name", "vFW");
251             sdcResponse.put("version", "v1");
252             sdcResponse.put("category", "E2E Service");
253
254             List<ResourceSpecification> resourceSpecs = new ArrayList<>();
255             ResourceSpecification resourceSpecificationA = new ResourceSpecification();
256             resourceSpecificationA.setId("2e3feeb0-8e36-46c6-862c-236d9c626438");
257             resourceSpecificationA.setInstanceName("vFW-vSINK");
258             resourceSpecificationA.setName("vFW-SINK");
259             resourceSpecificationA.setType("ONAPresource");
260             resourceSpecificationA.setVersion("2.0");
261             resourceSpecificationA.setResourceInvariantUUID("6e3feeb0-8e36-46c6-862c-236d9c626438");
262             resourceSpecs.add(resourceSpecificationA);
263
264             sdcResponse.put("resourceSpecification", resourceSpecs );
265
266             ServiceOrderInfo serviceOrderInfo = new ServiceOrderInfo();
267             serviceOrderInfo.setServiceOrderId("test");
268             SubscriberInfo subscriberInfo = new SubscriberInfo();
269             subscriberInfo.setGlobalSubscriberId("6490");
270             subscriberInfo.setSubscriberName("edgar");
271             serviceOrderInfo.setSubscriberInfo(subscriberInfo);
272
273             ServiceOrderItemInfo serviceOrderItemInfoA = new ServiceOrderItemInfo();
274             serviceOrderItemInfoA.setId("A");
275             serviceOrderItemInfoA.setCatalogResponse(sdcResponse);
276
277             ServiceOrderItemInfo serviceOrderItemInfoB = new ServiceOrderItemInfo();
278             serviceOrderItemInfoB.setId("B");
279             serviceOrderItemInfoB.setCatalogResponse(sdcResponse);
280             serviceOrderInfo.addServiceOrderItemInfos("A", serviceOrderItemInfoA);
281             serviceOrderInfo.addServiceOrderItemInfos("B", serviceOrderItemInfoB);
282
283             String json = JsonEntityConverter.convertServiceOrderInfoToJson(serviceOrderInfo);
284
285             ExecutionTask executionTaskA = new ExecutionTask();
286             executionTaskA.setCreateDate(new Date());
287             executionTaskA.setOrderItemId("A");
288             executionTaskA.setServiceOrderInfoJson(json);
289             executionTaskA = executionTaskRepository.save(executionTaskA);
290             ExecutionTask executionTaskB = new ExecutionTask();
291             executionTaskB.setCreateDate(new Date());
292             executionTaskB.setOrderItemId("B");
293             executionTaskB.setReliedTasks(String.valueOf(executionTaskA.getInternalId()));
294             executionTaskB.setServiceOrderInfoJson(json);
295             executionTaskRepository.save(executionTaskB);
296             return executionTaskA;
297         }
298
299
300 }