Revert "vLAN . Support Policies."
[sdc/sdc-tosca.git] / src / test / java / org / onap / sdc / impl / ToscaParserReqAndCapTest.java
1 package org.onap.sdc.impl;
2
3 import org.onap.sdc.tosca.parser.impl.SdcTypes;
4 import org.onap.sdc.toscaparser.api.CapabilityAssignments;
5 import org.onap.sdc.toscaparser.api.CapabilityAssignment;
6 import org.onap.sdc.toscaparser.api.NodeTemplate;
7 import org.onap.sdc.toscaparser.api.RequirementAssignments;
8 import org.onap.sdc.toscaparser.api.elements.Metadata;
9 import org.testng.annotations.Test;
10
11 import java.util.List;
12
13 import static org.testng.Assert.assertEquals;
14 import static org.testng.Assert.assertNotNull;
15 import static org.testng.Assert.assertNull;
16
17 public class ToscaParserReqAndCapTest extends SdcToscaParserBasicTest {
18
19     //region getCapabilitiesOf
20     @Test
21     public void testGetCapabilitiesOfNodeTemplate() {
22         List<NodeTemplate> vfs = fdntCsarHelper.getServiceVfList();
23         CapabilityAssignments capabilityAssignments = fdntCsarHelper.getCapabilitiesOf(vfs.get(0));
24         assertNotNull(capabilityAssignments);
25         assertEquals(13, capabilityAssignments.getAll().size());
26         assertNotNull(capabilityAssignments.getCapabilityByName("DNT_FW_RHRG.binding_DNT_FW_INT_DNS_TRUSTED_RVMI"));
27         assertEquals(6, capabilityAssignments.getCapabilitiesByType("tosca.capabilities.network.Bindable").getAll().size());
28     }
29
30     @Test
31     public void testGetCapabilitiesOfNull() {
32         CapabilityAssignments capabilityAssignments = fdntCsarHelper.getCapabilitiesOf(null);
33         assertNull(capabilityAssignments);
34     }
35     //endregion
36
37     //region getRequirementsOf
38     @Test
39     public void testGetRequirementsOfNodeTemplate() {
40         List<NodeTemplate> vfs = fdntCsarHelper.getServiceVfList();
41         List<NodeTemplate> cps = fdntCsarHelper.getNodeTemplateBySdcType(vfs.get(0), SdcTypes.CP);
42         RequirementAssignments requirementAssignments = fdntCsarHelper.getRequirementsOf(cps.get(0));
43         assertNotNull(requirementAssignments);
44         assertEquals(1, requirementAssignments.getAll().size());
45         assertEquals("DNT_FW_RHRG", requirementAssignments.getRequirementsByName("binding").getAll().get(0).getNodeTemplateName());
46     }
47
48     @Test
49     public void testGetRequirementsOfNull() {
50         RequirementAssignments requirementAssignments = fdntCsarHelper.getRequirementsOf(null);
51         assertNull(requirementAssignments);
52     }
53     //endregion
54
55     //region getCapabilityPropertyLeafValue
56     @Test
57     public void testGetCapabilityPropertyLeafValue() {
58         NodeTemplate vf = fdntCsarHelper.getServiceNodeTemplateByNodeName("FDNT 1");
59         CapabilityAssignment capabilityAssignment = vf.getCapabilities().getCapabilityByName("DNT_FW_RHRG.scalable_DNT_FW_SERVER");
60         assertNotNull(capabilityAssignment);
61         String propValue = fdntCsarHelper.getCapabilityPropertyLeafValue(capabilityAssignment, "max_instances#type");
62         assertEquals("integer", propValue);
63     }
64
65     @Test
66     public void testGetCapabilityHierarchyPropertyLeafValue() {
67         NodeTemplate vf = fdntCsarHelper.getServiceNodeTemplateByNodeName("FDNT 1");
68         CapabilityAssignment capabilityAssignment = vf.getCapabilities().getCapabilityByName("DNT_FW_RHRG.endpoint_DNT_FW_SERVER");
69         assertNotNull(capabilityAssignment);
70         String propValue = fdntCsarHelper.getCapabilityPropertyLeafValue(capabilityAssignment, "ports#entry_schema#type");
71         assertEquals("PortSpec", propValue);
72     }
73
74     @Test
75     public void testGetCapabilityDummyPropertyLeafValue() {
76         NodeTemplate vf = fdntCsarHelper.getServiceNodeTemplateByNodeName("FDNT 1");
77         CapabilityAssignment capabilityAssignment = vf.getCapabilities().getCapabilityByName("DNT_FW_RHRG.scalable_DNT_FW_SERVER");
78         assertNotNull(capabilityAssignment);
79         String propValue = fdntCsarHelper.getCapabilityPropertyLeafValue(capabilityAssignment, "dummy");
80         assertNull(propValue);
81     }
82
83     @Test
84     public void testGetCapabilityNullPropertyLeafValue() {
85         NodeTemplate vf = fdntCsarHelper.getServiceNodeTemplateByNodeName("FDNT 1");
86         CapabilityAssignment capabilityAssignment = vf.getCapabilities().getCapabilityByName("DNT_FW_RHRG.scalable_DNT_FW_SERVER");
87         assertNotNull(capabilityAssignment);
88         String propValue = fdntCsarHelper.getCapabilityPropertyLeafValue(capabilityAssignment, null);
89         assertNull(propValue);
90     }
91
92     @Test
93     public void testGetNullCapabilityPropertyLeafValue() {
94         String propValue = fdntCsarHelper.getCapabilityPropertyLeafValue(null, "max_instances#type");
95         assertNull(propValue);
96     }
97     //endregion
98     
99         //QA tests region for US 319197 -port mirroring-
100     
101         //get-CapabilitiesOf (All Types)
102         @Test
103         public void getServiceNodeTemplateCapabilitiesOfTypeVF() {
104                 List<NodeTemplate> serviceVfList = QAServiceForToscaParserTests.getServiceNodeTemplateBySdcType(SdcTypes.VF);
105                 CapabilityAssignments capabilitiesOfVF = QAServiceForToscaParserTests.getCapabilitiesOf(serviceVfList.get(0));
106                 assertEquals(capabilitiesOfVF.getAll().size(),12);
107                 assertNotNull(capabilitiesOfVF.getCapabilityByName("neutronport0.network.incoming.packets.rate"));
108         }
109         
110         @Test
111         public void getServiceNodeTemplateCapabilitiesOfTypeExVL() {
112                 List<NodeTemplate> serviceExtVlList = QAServiceForToscaParserTests.getServiceNodeTemplatesByType("org.openecomp.resource.vl.extVL");
113                 CapabilityAssignments capabilitiesOfExtVL = QAServiceForToscaParserTests.getCapabilitiesOf(serviceExtVlList.get(0));
114                 assertEquals(capabilitiesOfExtVL.getAll().size(),2);
115                 assertNotNull(capabilitiesOfExtVL.getCapabilityByName("virtual_linkable").getProperties());
116         }
117         
118         @Test
119         public void getServiceNodeTemplateCapabilitiesOfTypeVL() {
120                 List<NodeTemplate> serviceVlList = QAServiceForToscaParserTests.getServiceNodeTemplatesByType("tosca.nodes.network.Network");
121                 CapabilityAssignments capabilitiesOfVL = QAServiceForToscaParserTests.getCapabilitiesOf(serviceVlList.get(0));
122                 assertEquals(capabilitiesOfVL.getAll().size(),2);
123                 assertNotNull(capabilitiesOfVL.getCapabilityByName("link").getProperties());
124         }
125         
126         @Test
127         public void getServiceNodeTemplateCapabilitiesOfTypeCP() {
128                 List<NodeTemplate> serviceCpList = QAServiceForToscaParserTests.getServiceNodeTemplateBySdcType(SdcTypes.CP);
129                 CapabilityAssignments capabilitiesOfCP = QAServiceForToscaParserTests.getCapabilitiesOf(serviceCpList.get(0));
130                 assertEquals(capabilitiesOfCP.getAll().size(),2);
131                 assertNotNull(capabilitiesOfCP.getCapabilityByName("internal_connectionPoint"));
132         }
133         
134         @Test
135         public void getServiceNodeTemplateCapabilitiesOfTypePNF() {
136                 List<NodeTemplate> servicePnfs = QAServiceForToscaParserTests.getServiceNodeTemplateBySdcType(SdcTypes.PNF);
137                 CapabilityAssignments capabilitiesOfPnf = QAServiceForToscaParserTests.getCapabilitiesOf(servicePnfs.get(0));
138                 assertEquals(capabilitiesOfPnf.getAll().size(),1);
139                 assertNotNull(capabilitiesOfPnf.getCapabilityByName("feature"));
140         }
141         
142         //get-RequirementsOf (All Types)-----------------------------
143         
144         @Test
145         public void getServiceNodeTemplateRequirementsOfTypeVF() {
146                 List<NodeTemplate> serviceVfList = QAServiceForToscaParserTests.getServiceNodeTemplateBySdcType(SdcTypes.VF);
147                 RequirementAssignments requirementsOfVF = QAServiceForToscaParserTests.getRequirementsOf(serviceVfList.get(6));
148                 assertEquals(requirementsOfVF.getAll().size(),3);
149 //              RequirementAssignments requirementsByName = 
150                 assertEquals(requirementsOfVF.getRequirementsByName("dependency").getAll().size(),2 );
151                 //check that API return empty list if requirement property not exist.
152                 assertEquals(requirementsOfVF.getRequirementsByName("blabla").getAll().size(),0);
153         }
154         
155         @Test
156         public void getServiceNodeTemplateRequirementsOfTypeExVL() {
157                 List<NodeTemplate> serviceExtVlList = QAServiceForToscaParserTests.getServiceNodeTemplatesByType("org.openecomp.resource.vl.extVL");
158                 RequirementAssignments requirementsOfExtVL = QAServiceForToscaParserTests.getRequirementsOf(serviceExtVlList.get(0));
159                 assertEquals(requirementsOfExtVL.getAll().size(),1);
160         }
161         
162         @Test
163         public void getServiceNodeTemplateRequirementsOfTypeVL() {
164                 List<NodeTemplate> serviceVlList = QAServiceForToscaParserTests.getServiceNodeTemplatesByType("tosca.nodes.network.Network");
165                 RequirementAssignments requirementsOfVL = QAServiceForToscaParserTests.getRequirementsOf(serviceVlList.get(1));
166                 assertEquals(requirementsOfVL.getAll().size(),2);
167                 assertNotNull(requirementsOfVL.getRequirementsByName("dependency"));
168         }
169         
170         @Test
171         public void getServiceNodeTemplateRequirementsOfTypeCP() {
172                 List<NodeTemplate> serviceCpList = QAServiceForToscaParserTests.getServiceNodeTemplateBySdcType(SdcTypes.CP);
173                 RequirementAssignments requirementsOfCP = QAServiceForToscaParserTests.getRequirementsOf(serviceCpList.get(0));
174                 assertEquals(requirementsOfCP.getAll().size(),2);
175                 assertEquals(requirementsOfCP.getRequirementsByName("virtualBinding").getAll().size(),1);
176         }
177         
178         @Test
179         public void getServiceNodeTemplateRequirementsOfTypePNF() {
180                 List<NodeTemplate> servicePnfs = QAServiceForToscaParserTests.getServiceNodeTemplateBySdcType(SdcTypes.PNF);
181                 RequirementAssignments requirementsOfPnf = QAServiceForToscaParserTests.getRequirementsOf(servicePnfs.get(0));
182                 assertEquals(requirementsOfPnf.getAll().size(),2);
183                 assertNotNull(requirementsOfPnf.getRequirementsByName("feature"));
184         }
185         
186         //QA end region for US 319197 -port mirroring
187         
188     // Added by QA CapabilityAssignments
189     @Test
190     public void testGetCapabilitiesByType() {
191         List<NodeTemplate> vfs = resolveGetInputCsarQA.getServiceVfList();
192         CapabilityAssignments capabilityAssignments = resolveGetInputCsarQA.getCapabilitiesOf(vfs.get(0));
193         assertNotNull(capabilityAssignments);
194         CapabilityAssignments capabilitiesByType = capabilityAssignments.getCapabilitiesByType("tosca.capabilities.Scalable");
195         int capsQty = capabilitiesByType.getAll().size();
196         assertEquals(1, capsQty);
197         CapabilityAssignment capabilityByName = capabilitiesByType.getCapabilityByName("abstract_pd_server.scalable_pd_server");
198         assertNotNull(capabilityByName);
199     }
200     
201     @Test
202     public void testGetCapabilityByName() {
203         List<NodeTemplate> vfs = resolveGetInputCsarQA.getServiceVfList();
204         CapabilityAssignments capabilityAssignments = resolveGetInputCsarQA.getCapabilitiesOf(vfs.get(0));
205         assertNotNull(capabilityAssignments);
206         CapabilityAssignment capabilityByName = capabilityAssignments.getCapabilityByName("abstract_pd_server.disk.iops_pd_server");
207         assertNotNull(capabilityByName);
208         String capName = capabilityByName.getName();
209         assertEquals(capName, "abstract_pd_server.disk.iops_pd_server");
210     }
211     
212     @Test
213     public void testGetCapabilitiesGetAll() {
214         List<NodeTemplate> vfs = resolveGetInputCsarQA.getServiceVfList();
215         CapabilityAssignments capabilityAssignments = resolveGetInputCsarQA.getCapabilitiesOf(vfs.get(0));
216         assertNotNull(capabilityAssignments);
217         int capsAssignmentSize = capabilityAssignments.getAll().size();
218         assertEquals(65, capsAssignmentSize);        
219     }
220     
221  // Added by QA RequirementsAssignments
222     @Test
223     public void testGetRequirementsByName() {
224          List<NodeTemplate> vfs = resolveReqsCapsCsarQA.getServiceVfList();
225          List<NodeTemplate> cps = resolveReqsCapsCsarQA.getNodeTemplateBySdcType(vfs.get(0), SdcTypes.CP);
226          RequirementAssignments requirementAssignments = resolveReqsCapsCsarQA.getRequirementsOf(cps.get(0));
227          assertNotNull(requirementAssignments);
228          assertEquals(2, requirementAssignments.getAll().size());
229          assertEquals("DNT_FW_RHRG2", requirementAssignments.getRequirementsByName("binding").getAll().get(1).getNodeTemplateName());
230   
231     }
232     
233     @Test
234     public void testRequirementAssignmentGetNodeGetCapability() {
235          List<NodeTemplate> vfs = resolveReqsCapsCsarQA.getServiceVfList();
236          List<NodeTemplate> cps = resolveReqsCapsCsarQA.getNodeTemplateBySdcType(vfs.get(0), SdcTypes.CP);
237          RequirementAssignments requirementAssignments = resolveReqsCapsCsarQA.getRequirementsOf(cps.get(0));
238          assertNotNull(requirementAssignments);
239          String nodeTemplateName = requirementAssignments.getAll().get(0).getNodeTemplateName();
240          String capabilityName = requirementAssignments.getAll().get(0).getCapabilityName();
241          assertEquals(nodeTemplateName, "DNT_FW_RHRG");
242          assertNull(capabilityName);
243     }
244     
245     
246     @Test
247     public void testRequirementAssignmentGetCapability() {
248          List<NodeTemplate> cps = QAServiceForToscaParserTests.getServiceNodeTemplateBySdcType(SdcTypes.CP);
249          RequirementAssignments requirementAssignments = QAServiceForToscaParserTests.getRequirementsOf(cps.get(0));
250          assertNotNull(requirementAssignments);        
251          String nodeTemplateName = requirementAssignments.getAll().get(0).getNodeTemplateName();
252          String capabilityName = requirementAssignments.getAll().get(0).getCapabilityName();
253          assertEquals(nodeTemplateName, "ExtVL 0");
254          assertEquals(capabilityName,"tosca.capabilities.network.Linkable");
255     }
256     
257     @Test
258     public void testGetCapabilityProperties() {
259         List<NodeTemplate> vfs = fdntCsarHelper.getServiceVfList();
260         List<NodeTemplate> cps = fdntCsarHelper.getNodeTemplateBySdcType(vfs.get(0), SdcTypes.CP);
261         CapabilityAssignments capabilityAssignments = cps.get(0).getCapabilities();
262         assertNotNull(capabilityAssignments);
263         assertEquals(12, capabilityAssignments.getAll().size());
264         CapabilityAssignment xxxCapability = capabilityAssignments.getCapabilityByName("xxx");
265         //GetInput property - resolved in any case
266         String getInputProp = fdntCsarHelper.getCapabilityPropertyLeafValue(xxxCapability, "DeploymentFlavor");
267         assertEquals("{aaa=bbb}", getInputProp);
268         //Simple property
269         String simpleProp = fdntCsarHelper.getCapabilityPropertyLeafValue(xxxCapability, "distribution");
270         assertEquals("rhel", simpleProp);
271     }
272
273 }