b00bd0f6b16573f79828306fb5dae09ffe6eb7d0
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / tosca / CapabiltyRequirementConvertorTest.java
1 package org.openecomp.sdc.be.tosca;
2 //
3
4 import static java.util.Arrays.asList;
5 import static org.assertj.core.api.Assertions.assertThat;
6 import static org.mockito.Mockito.doReturn;
7
8 import java.util.ArrayList;
9 import java.util.Arrays;
10 import java.util.Collections;
11 import java.util.HashMap;
12 import java.util.List;
13 import java.util.Map;
14 import java.util.stream.Collectors;
15
16 import org.junit.Test;
17 import org.mockito.Mockito;
18 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
19 import org.openecomp.sdc.be.model.CapabilityDefinition;
20 import org.openecomp.sdc.be.model.Component;
21 import org.openecomp.sdc.be.model.ComponentInstance;
22 import org.openecomp.sdc.be.model.Resource;
23
24 public class CapabiltyRequirementConvertorTest {
25
26     CapabiltyRequirementConvertor capabiltyRequirementConvertor =  Mockito.spy(new CapabiltyRequirementConvertor());
27     ComponentInstance instanceProxy  =  Mockito.spy( new ComponentInstance() );
28     ComponentInstance vfInstance  =  Mockito.spy( new ComponentInstance() );
29     Component vfComponent =  Mockito.spy( new Resource() );
30     ComponentInstance vfcInstance  =  Mockito.spy( new ComponentInstance() );
31     Component vfcComponent  =  Mockito.spy( new Resource() );
32
33     @Test
34     public void getReducedPathByOwner() throws Exception {
35         List<String> pathList = new ArrayList<>();
36         String uniqueId = "41d3a665-1313-4b5e-9bf0-e901ecf4b806.a77df84e-83eb-4edc-9823-d1f9f6549693.lb_2";
37
38         String exerpt = "41d3a665-1313-4b5e-9bf0-e901ecf4b806.a77df84e-83eb-4edc-9823-d1f9f6549693.lb_1";
39         String duplicate = "a77df84e-83eb-4edc-9823-d1f9f6549693.c79e9a4a-b172-4323-a2e2-1c48d6603241.lb_swu_direct_4_rvmi";
40         pathList.add(exerpt);
41         pathList.add(duplicate);
42         pathList.add(duplicate);
43         pathList.add(uniqueId);
44   
45         pathList.add("5f172af9-1588-443e-8897-1432b19aad8c.2cb7514a-1e50-4280-8457-baacb97b50bf.vepdgtp4837vf0");
46         pathList.add("86ae128e-3d0a-41f7-a957-db1df9fe598c.9cc8f8ac-6869-4dd6-a6e1-74ecb9570dc4.vepdgtp4837svc_proxy0");
47
48         List<String> reducedMap = new CapabiltyRequirementConvertor().getReducedPathByOwner( pathList , uniqueId );
49
50         assertThat( reducedMap ).isNotNull().doesNotContain(exerpt).containsOnlyOnce(duplicate).hasSize(4);
51     }
52
53     //generate stub capability
54     private Map<String, List<CapabilityDefinition>> newCapabilities(String capabilityName){
55         Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
56         List<CapabilityDefinition> list = new ArrayList<>();
57         CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
58         capabilityDefinition.setName( capabilityName );
59         capabilityDefinition.setType("att.Node");
60         List<String> pathList = new ArrayList<>();
61
62         capabilityDefinition.setOwnerId("41d3a665-1313-4b5e-9bf0-e901ecf4b806.a77df84e-83eb-4edc-9823-d1f9f6549693");
63         pathList.add("41d3a665-1313-4b5e-9bf0-e901ecf4b806.a77df84e-83eb-4edc-9823-d1f9f6549693.lb_1");
64         //pathList.add("a77df84e-83eb-4edc-9823-d1f9f6549693.c79e9a4a-b172-4323-a2e2-1c48d6603241.lb_swu_direct_4_rvmi");
65         pathList.add("5f172af9-1588-443e-8897-1432b19aad8c.2cb7514a-1e50-4280-8457-baacb97b50bf.vepdgtp4837vf0");
66         pathList.add("86ae128e-3d0a-41f7-a957-db1df9fe598c.9cc8f8ac-6869-4dd6-a6e1-74ecb9570dc4.vepdgtp4837svc_proxy0");
67
68         capabilityDefinition.setPath(pathList);
69         list.add(capabilityDefinition);
70         capabilities.put(capabilityDefinition.getType() , list );
71
72         return capabilities;
73     }
74
75
76     @Test
77     public void testBuildName(){
78         doReturn("1").when(instanceProxy).getActualComponentUid();
79         doReturn("2").when(vfInstance).getActualComponentUid();
80         doReturn("3").when(vfcInstance).getActualComponentUid();
81         //region proxy
82         Component proxyOrigin = new Resource();
83
84         proxyOrigin.setName( "vepdgtp4837svc_proxy0" );
85         proxyOrigin.setComponentType(ComponentTypeEnum.RESOURCE);
86         proxyOrigin.setComponentInstances( asList( vfInstance ) );
87
88         //endregion
89         //region vf+vfc
90         vfInstance.setName("vepdgtp4837vf0");
91         vfInstance.setNormalizedName("vepdgtp4837vf0");
92         vfInstance.setUniqueId("5f172af9-1588-443e-8897-1432b19aad8c.2cb7514a-1e50-4280-8457-baacb97b50bf.vepdgtp4837vf0");
93         vfComponent.setName("vepdgtp4837vf0"); //origin
94         vfComponent.setComponentInstances(Arrays.asList(vfcInstance));
95         vfcInstance.setUniqueId("41d3a665-1313-4b5e-9bf0-e901ecf4b806.a77df84e-83eb-4edc-9823-d1f9f6549693.lb_1");
96         vfcInstance.setName("lb_1");
97         vfcInstance.setNormalizedName("lb_1");
98         vfcInstance.setName("41d3a665-1313-4b5e-9bf0-e901ecf4b806.a77df84e-83eb-4edc-9823-d1f9f6549693.lb_1");
99         vfcComponent.setName("lb_1");
100         //endregion
101         Map<String, List<CapabilityDefinition>> capabilities = newCapabilities("port");
102         vfcComponent.setCapabilities(capabilities);
103         Map<Component, ComponentInstance> map = Collections.unmodifiableMap(new HashMap<Component, ComponentInstance>() {
104             {
105                 put( proxyOrigin, null );
106                 put( vfComponent, vfInstance );
107                 put( vfcComponent, vfcInstance );
108             } } ) ;
109         Map<String, Component> cache = Collections.unmodifiableMap(new HashMap<String, Component>() {{
110                                                                             put( "1",proxyOrigin);
111                                                                             put( "2" ,vfComponent);
112                                                                             put( "3" ,vfcComponent);
113         }});
114         instanceProxy.setCapabilities(capabilities);
115         proxyOrigin.setCapabilities( capabilities );
116         List<CapabilityDefinition> flatList = capabilities.values().stream().flatMap(List::stream).collect(Collectors.toList());
117         flatList.stream().forEach( (CapabilityDefinition capabilityDefinition) -> {
118             String name = capabiltyRequirementConvertor.buildCapabilityNameForComponentInstance(cache, instanceProxy, capabilityDefinition);
119             System.out.println("built name -> " + name);
120             assertThat(name).isEqualTo( "vepdgtp4837vf0.lb_1."+capabilityDefinition.getName() );
121         });
122     }
123 }
124