Catalog alignment
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / distribution / engine / ServiceDistributionArtifactsBuilderTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.components.distribution.engine;
22
23 import fj.data.Either;
24 import mockit.Deencapsulation;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.mockito.InjectMocks;
28 import org.mockito.Mock;
29 import org.mockito.Mockito;
30 import org.mockito.MockitoAnnotations;
31 import org.openecomp.sdc.be.components.BeConfDependentTest;
32 import org.openecomp.sdc.be.model.ArtifactDefinition;
33 import org.openecomp.sdc.be.model.ComponentInstance;
34 import org.openecomp.sdc.be.model.ComponentParametersView;
35 import org.openecomp.sdc.be.model.Resource;
36 import org.openecomp.sdc.be.model.Service;
37 import org.openecomp.sdc.be.model.category.CategoryDefinition;
38 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
39 import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
40 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
41
42 import java.util.Arrays;
43 import java.util.HashMap;
44 import java.util.LinkedList;
45 import java.util.List;
46 import java.util.Map;
47
48 import static org.assertj.core.api.Assertions.assertThat;
49 import static org.mockito.Mockito.when;
50
51 public class ServiceDistributionArtifactsBuilderTest extends BeConfDependentTest {
52
53         @InjectMocks
54         private ServiceDistributionArtifactsBuilder testInstance;
55
56         @Mock
57         ToscaOperationFacade toscaOperationFacade;
58
59         private ServiceDistributionArtifactsBuilder createTestSubject() {
60                 return testInstance;
61         }
62
63         @Before
64         public void setUpMock() throws Exception {
65                 MockitoAnnotations.initMocks(this);
66         }
67
68         @Test
69         public void testGetInterfaceLifecycleOperation() throws Exception {
70                 ServiceDistributionArtifactsBuilder testSubject;
71                 InterfaceLifecycleOperation result;
72
73                 // default test
74                 testSubject = createTestSubject();
75                 result = testSubject.getInterfaceLifecycleOperation();
76         }
77
78         @Test
79         public void testSetInterfaceLifecycleOperation() throws Exception {
80                 ServiceDistributionArtifactsBuilder testSubject;
81                 InterfaceLifecycleOperation interfaceLifecycleOperation = null;
82
83                 // default test
84                 testSubject = createTestSubject();
85                 testSubject.setInterfaceLifecycleOperation(interfaceLifecycleOperation);
86         }
87
88         @Test
89         public void testResolveWorkloadContext() throws Exception {
90                 ServiceDistributionArtifactsBuilder testSubject;
91                 String workloadContext = "";
92                 String result;
93
94                 // default test
95                 testSubject = createTestSubject();
96                 result = Deencapsulation.invoke(testSubject, "resolveWorkloadContext", new Object[] { workloadContext });
97         }
98
99         @Test
100         public void testBuildResourceInstanceForDistribution() throws Exception {
101                 ServiceDistributionArtifactsBuilder testSubject;
102                 Service service = new Service();
103                 String distributionId = "";
104                 String workloadContext = "";
105                 INotificationData result;
106
107                 // test 1
108                 testSubject = createTestSubject();
109                 workloadContext = "mock";
110                 result = testSubject.buildResourceInstanceForDistribution(service, distributionId, workloadContext);
111
112                 // test 2
113                 testSubject = createTestSubject();
114                 workloadContext = null;
115                 result = testSubject.buildResourceInstanceForDistribution(service, distributionId, workloadContext);
116         }
117
118         @Test
119         public void testBuildResourceInstanceForDistributionArtifactsTimeout() throws Exception {
120                 Service service = new Service();
121                 int deploymentArtifactTimeout = 60;
122                 ComponentInstance ci = createComponentInstance("ci");
123                 ci.setDeploymentArtifacts(createDeploymentArtifactList(deploymentArtifactTimeout));
124                 service.setComponentInstances(Arrays.asList(ci));
125
126                 when(toscaOperationFacade.getToscaElement(Mockito.eq(ci.getComponentUid()), Mockito.any(ComponentParametersView.class)))
127                                 .thenReturn(Either.left(createDefaultResource()));
128
129                 INotificationData notificationData = testInstance.buildResourceInstanceForDistribution(service, "did", "workload");
130                 assertThat(notificationData.getResources().get(0).getArtifacts().get(0).getArtifactTimeout())
131                                 .isEqualTo(deploymentArtifactTimeout);
132         }
133
134         private Map<String, ArtifactDefinition> createDeploymentArtifactList(int timeout) {
135                 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
136                 deploymentArtifacts.put("label", createArtifactDefinition("1", timeout));
137                 return deploymentArtifacts;
138         }
139
140         private Resource createDefaultResource() {
141                 Resource ciResource = new Resource();
142                 ciResource.setInvariantUUID("res");
143                 return ciResource;
144         }
145
146         private ComponentInstance createComponentInstance(String cuid) {
147                 ComponentInstance ci = new ComponentInstance();
148                 ci.setComponentUid(cuid);
149                 return ci;
150         }
151
152         private ArtifactDefinition createArtifactDefinition(String id, int timeout) {
153                 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
154                 artifactDefinition.setTimeout(60);
155                 artifactDefinition.setUniqueId(id);
156                 artifactDefinition.setEsId(id);
157                 return artifactDefinition;
158         }
159
160         @Test
161         public void testBuildServiceForDistribution() throws Exception {
162                 ServiceDistributionArtifactsBuilder testSubject;
163                 INotificationData notificationData = new INotificationDataMock();
164                 Service service = new Service();
165                 service.setDeploymentArtifacts(new HashMap<>());
166                 service.setToscaArtifacts(new HashMap<>());
167                 INotificationData result;
168
169                 // default test
170                 testSubject = createTestSubject();
171                 result = testSubject.buildServiceForDistribution(notificationData, service);
172         }
173
174         @Test(expected = NullPointerException.class)
175         public void testConvertServiceArtifactsToArtifactInfo() throws Exception {
176                 ServiceDistributionArtifactsBuilder testSubject;
177                 Service service = new Service();
178                 service.setDeploymentArtifacts(new HashMap<>());
179                 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
180                 ArtifactDefinition artifactDefinition = new ArtifactDefinition();
181                 ArtifactDefinition artifactDefinition2 = new ArtifactDefinition();
182                 artifactDefinition.setArtifactType(ArtifactTypeEnum.TOSCA_TEMPLATE.getType());
183                 artifactDefinition2.setArtifactType(ArtifactTypeEnum.TOSCA_CSAR.getType());
184                 toscaArtifacts.put("mock", artifactDefinition);
185                 toscaArtifacts.put("mock2", artifactDefinition2);
186                 service.setToscaArtifacts(new HashMap<>());
187                 List<ArtifactInfoImpl> result;
188
189                 // default test
190                 testSubject = createTestSubject();
191                 result = Deencapsulation.invoke(testSubject, "convertServiceArtifactsToArtifactInfo", service);
192                 service.setToscaArtifacts(toscaArtifacts);
193                 result = Deencapsulation.invoke(testSubject, "convertServiceArtifactsToArtifactInfo", service);
194         }
195         
196         @Test(expected=NullPointerException.class)
197         public void testConvertRIsToJsonContanier() throws Exception {
198                 ServiceDistributionArtifactsBuilder testSubject;
199                 Service service = new Service();
200                 List<ComponentInstance> resourceInstances = new LinkedList<>();
201                 List<JsonContainerResourceInstance> result;
202
203                 // default test
204                 testSubject = createTestSubject();
205                 result = Deencapsulation.invoke(testSubject, "convertRIsToJsonContanier", service);
206                 
207                 resourceInstances.add(new ComponentInstance());
208                 service.setComponentInstances(resourceInstances);
209                 result = Deencapsulation.invoke(testSubject, "convertRIsToJsonContanier", service);
210         }
211
212         @Test
213         public void testFillJsonContainer() throws Exception {
214                 ServiceDistributionArtifactsBuilder testSubject;
215                 JsonContainerResourceInstance jsonContainer = new JsonContainerResourceInstance(new ComponentInstance(),
216                                 new LinkedList<>());
217                 Resource resource = new Resource();
218
219                 // default test
220                 testSubject = createTestSubject();
221                 Deencapsulation.invoke(testSubject, "fillJsonContainer", jsonContainer, resource);
222         }
223
224         @Test
225         public void testConvertToArtifactsInfoImpl() throws Exception {
226                 ServiceDistributionArtifactsBuilder testSubject;
227                 Service service = new Service();
228                 ComponentInstance resourceInstance = new ComponentInstance();
229                 List<ArtifactInfoImpl> result;
230
231                 // default test
232                 testSubject = createTestSubject();
233                 result = Deencapsulation.invoke(testSubject, "convertToArtifactsInfoImpl", service, resourceInstance);
234         }
235
236         @Test
237         public void testSetCategories() throws Exception {
238                 ServiceDistributionArtifactsBuilder testSubject;
239                 JsonContainerResourceInstance jsonContainer = null;
240                 List<CategoryDefinition> categories = null;
241
242                 // test 1
243                 testSubject = createTestSubject();
244                 categories = null;
245                 Deencapsulation.invoke(testSubject, "setCategories",
246                                 new Object[] { JsonContainerResourceInstance.class, List.class });
247         }
248
249         @Test
250         public void testGetArtifactsWithPayload() throws Exception {
251                 ServiceDistributionArtifactsBuilder testSubject;
252                 ComponentInstance resourceInstance = new ComponentInstance();
253                 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
254                 resourceInstance.setDeploymentArtifacts(deploymentArtifacts);
255                 List<ArtifactDefinition> result;
256
257                 // default test
258                 testSubject = createTestSubject();
259                 result = Deencapsulation.invoke(testSubject, "getArtifactsWithPayload", resourceInstance);
260                 deploymentArtifacts.put("mock", new ArtifactDefinition());
261                 result = Deencapsulation.invoke(testSubject, "getArtifactsWithPayload", resourceInstance);
262         }
263
264         @Test
265         public void testBuildResourceInstanceArtifactUrl() throws Exception {
266                 Service service = new Service();
267                 service.setSystemName("mock");
268                 service.setVersion("mock");
269                 ComponentInstance resourceInstance = new ComponentInstance();
270                 resourceInstance.setNormalizedName("mock");
271                 String artifactName = "mock";
272                 String result;
273
274                 // default test
275                 result = ServiceDistributionArtifactsBuilder.buildResourceInstanceArtifactUrl(service, resourceInstance,
276                                 artifactName);
277         }
278
279         @Test
280         public void testBuildServiceArtifactUrl() throws Exception {
281                 Service service = new Service();
282                 String artifactName = "mock";
283                 String result;
284
285                 // default test
286                 result = ServiceDistributionArtifactsBuilder.buildServiceArtifactUrl(service, artifactName);
287         }
288
289         @Test
290         public void testVerifyServiceContainsDeploymentArtifacts() throws Exception {
291                 ServiceDistributionArtifactsBuilder testSubject;
292                 Service service = new Service();
293                 boolean result;
294
295                 // default test
296                 testSubject = createTestSubject();
297                 result = testSubject.verifyServiceContainsDeploymentArtifacts(service);
298                 Map<String, ArtifactDefinition> deploymentArtifacts = new HashMap<>();
299                 deploymentArtifacts.put("mock", new ArtifactDefinition());
300                 service.setDeploymentArtifacts(deploymentArtifacts);
301                 result = testSubject.verifyServiceContainsDeploymentArtifacts(service);
302                 List<ComponentInstance> resourceInstances = new LinkedList<>();
303                 resourceInstances.add(new ComponentInstance());
304                 service.setComponentInstances(resourceInstances);
305                 service.setDeploymentArtifacts(null);
306                 result = testSubject.verifyServiceContainsDeploymentArtifacts(service);
307         }
308
309         @Test
310         public void testIsContainsPayload() throws Exception {
311                 ServiceDistributionArtifactsBuilder testSubject;
312                 Map<String, ArtifactDefinition> deploymentArtifacts = null;
313                 boolean result;
314
315                 // default test
316                 testSubject = createTestSubject();
317                 result = Deencapsulation.invoke(testSubject, "isContainsPayload", new Object[] { Map.class });
318         }
319
320         private class INotificationDataMock implements INotificationData {
321
322                 @Override
323                 public String getDistributionID() {
324                         // TODO Auto-generated method stub
325                         return null;
326                 }
327
328                 @Override
329                 public String getServiceName() {
330                         // TODO Auto-generated method stub
331                         return null;
332                 }
333
334                 @Override
335                 public String getServiceVersion() {
336                         // TODO Auto-generated method stub
337                         return null;
338                 }
339
340                 @Override
341                 public String getServiceUUID() {
342                         // TODO Auto-generated method stub
343                         return null;
344                 }
345
346                 @Override
347                 public String getServiceDescription() {
348                         // TODO Auto-generated method stub
349                         return null;
350                 }
351
352                 @Override
353                 public String getServiceInvariantUUID() {
354                         // TODO Auto-generated method stub
355                         return null;
356                 }
357
358                 @Override
359                 public List<JsonContainerResourceInstance> getResources() {
360                         // TODO Auto-generated method stub
361                         return null;
362                 }
363
364                 @Override
365                 public List<ArtifactInfoImpl> getServiceArtifacts() {
366                         // TODO Auto-generated method stub
367                         return null;
368                 }
369
370                 @Override
371                 public String getWorkloadContext() {
372                         // TODO Auto-generated method stub
373                         return null;
374                 }
375
376                 @Override
377                 public void setDistributionID(String distributionId) {
378                         // TODO Auto-generated method stub
379
380                 }
381
382                 @Override
383                 public void setServiceName(String serviceName) {
384                         // TODO Auto-generated method stub
385
386                 }
387
388                 @Override
389                 public void setServiceVersion(String serviceVersion) {
390                         // TODO Auto-generated method stub
391
392                 }
393
394                 @Override
395                 public void setServiceUUID(String serviceUUID) {
396                         // TODO Auto-generated method stub
397
398                 }
399
400                 @Override
401                 public void setServiceDescription(String serviceDescription) {
402                         // TODO Auto-generated method stub
403
404                 }
405
406                 @Override
407                 public void setServiceInvariantUUID(String serviceInvariantUuid) {
408                         // TODO Auto-generated method stub
409
410                 }
411
412                 @Override
413                 public void setResources(List<JsonContainerResourceInstance> resource) {
414                         // TODO Auto-generated method stub
415
416                 }
417
418                 @Override
419                 public void setServiceArtifacts(List<ArtifactInfoImpl> artifacts) {
420                         // TODO Auto-generated method stub
421
422                 }
423
424                 @Override
425                 public void setWorkloadContext(String workloadContext) {
426                         // TODO Auto-generated method stub
427
428                 }
429
430         }
431 }