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