1 package org.openecomp.sdc.be.tosca;
4 import static java.util.Arrays.asList;
5 import static org.assertj.core.api.Assertions.assertThat;
6 import static org.mockito.Mockito.doReturn;
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;
14 import java.util.stream.Collectors;
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;
24 public class CapabiltyRequirementConvertorTest {
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() );
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";
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";
41 pathList.add(duplicate);
42 pathList.add(duplicate);
43 pathList.add(uniqueId);
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");
48 List<String> reducedMap = new CapabiltyRequirementConvertor().getReducedPathByOwner( pathList , uniqueId );
50 assertThat( reducedMap ).isNotNull().doesNotContain(exerpt).containsOnlyOnce(duplicate).hasSize(4);
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<>();
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");
68 capabilityDefinition.setPath(pathList);
69 list.add(capabilityDefinition);
70 capabilities.put(capabilityDefinition.getType() , list );
77 public void testBuildName(){
78 doReturn("1").when(instanceProxy).getActualComponentUid();
79 doReturn("2").when(vfInstance).getActualComponentUid();
80 doReturn("3").when(vfcInstance).getActualComponentUid();
82 Component proxyOrigin = new Resource();
84 proxyOrigin.setName( "vepdgtp4837svc_proxy0" );
85 proxyOrigin.setComponentType(ComponentTypeEnum.RESOURCE);
86 proxyOrigin.setComponentInstances( asList( vfInstance ) );
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");
101 Map<String, List<CapabilityDefinition>> capabilities = newCapabilities("port");
102 vfcComponent.setCapabilities(capabilities);
103 Map<Component, ComponentInstance> map = Collections.unmodifiableMap(new HashMap<Component, ComponentInstance>() {
105 put( proxyOrigin, null );
106 put( vfComponent, vfInstance );
107 put( vfcComponent, vfcInstance );
109 Map<String, Component> cache = Collections.unmodifiableMap(new HashMap<String, Component>() {{
110 put( "1",proxyOrigin);
111 put( "2" ,vfComponent);
112 put( "3" ,vfcComponent);
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() );