5412b5512963d2754e8f7b22c442155a39e8c57c
[sdc.git] /
1 /*
2  * Copyright © 2016-2018 European Support Limited
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
17 package org.openecomp.sdc.tosca.datatypes;
18
19 import java.io.IOException;
20 import java.io.InputStream;
21 import java.util.ArrayList;
22 import java.util.HashMap;
23 import java.util.List;
24 import java.util.Map;
25 import java.util.Optional;
26 import org.junit.Assert;
27 import org.junit.Test;
28 import org.onap.sdc.tosca.datatypes.model.*;
29 import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
30 import org.onap.sdc.tosca.datatypes.model.extension.*;
31 import org.onap.sdc.tosca.datatypes.model.heatextend.ParameterDefinitionExt;
32 import org.onap.sdc.tosca.services.ToscaExtensionYamlUtil;
33 import org.onap.sdc.tosca.services.YamlUtil;
34 import org.openecomp.sdc.tosca.services.DataModelUtil;
35 import org.openecomp.sdc.tosca.services.ToscaConstants;
36
37
38 public class ToscaModelTest {
39
40     public static final String FIRST_NODE_TEMPLATE = "firstNodeTemplate";
41     public static final String REQ1 = "req1";
42     public static final String REQ2 = "req2";
43     public static final String SERVICE_FILTER_TOSCA_ID = "{get_input=inParam1}";
44     public static final String VMD_NAME = "vmdName";
45     public static final String DIRECTOR = "director";
46     private YamlUtil yamlUtil = new YamlUtil();
47     private ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
48     private static final String INTERFACE_ID = "inter_1";
49     private static final String NODE_TEMPLATE_ID = "firstNodeTemplate";
50     private static final String NODE_TYPE_ID = "compute_node_type";
51     private static final String BASE_DIR = "/mock/model";
52     private static final String ST = "/serviceTemplate.yaml";
53     private static final String ST_WITH_INTERFACE = "/serviceTemplateWithInterface.yaml";
54     private static final String ST_WITH_OPERATIONS = "/serviceTemplateWithInterfaceAndOperation.yaml";
55     private static final String ST_WITH_INTERFACE_DEF = "/serviceTemplateWithNodeTemplateInterface.yaml";
56     private static final String ST_WITH_NODE_INTERFACE_DEF = "/serviceTemplateWithNodeTypeInterface.yaml";
57     private static final String INTERFACE_TYPE_VALUE = "tosca.interfaces.node.lifecycle.Standard";
58     private static final String OPERATION_START = "start";
59     private static final String OPERATION_DESC = "start operation";
60     private static final String IMPLEMENTATION_NAME = "startWorkFlow.json";
61     private static final String PRIMARY_IMPL = "myImpl.yaml";
62     private static final String DEPENDENCY_NAME = "script1.sh";
63     private static final String STRING_TYPE = "string";
64     private static final String ST_WITH_SERVICE_FILTER = "/serviceTemplateWithServiceFilter.yaml";
65
66     @Test
67     public void testServiceTemplateJavaToYaml() {
68         ServiceTemplate serviceTemplate = new ServiceTemplate();
69         Map<String, String> metadata = new HashMap<>();
70         metadata.put("Template_author", "OPENECOMP");
71         metadata.put(ToscaConstants.ST_METADATA_TEMPLATE_NAME, "Test");
72         metadata.put("Template_version", "1.0.0");
73         serviceTemplate.setTosca_definitions_version("tosca_simple_yaml_1_0_0");
74         serviceTemplate.setDescription("testing desc tosca service template");
75
76         Import fileImport1 = new Import();
77         fileImport1.setFile("path1/path2/file1.yaml");
78         Import fileImport2 = new Import();
79         fileImport2.setFile("path1/path2/file2.yaml");
80         List<Map<String, Import>> imports = new ArrayList<>();
81         Map<String, Import> importsMap = new HashMap<>();
82         importsMap.put("myfile1", fileImport1);
83         imports.add(importsMap);
84         importsMap = new HashMap<>();
85         importsMap.put("myfile2", fileImport2);
86         imports.add(importsMap);
87         serviceTemplate.setImports(imports);
88
89         OperationDefinition operationDefinition = new OperationDefinition();
90         operationDefinition.setDescription("test operation");
91         InterfaceType interfaceType = new InterfaceType();
92         interfaceType.setDerived_from("derived_from");
93         interfaceType.setDescription("desc");
94         interfaceType.addOperation("test", operationDefinition);
95         serviceTemplate.addInterfaceType("test_interface", interfaceType);
96
97         ArtifactType artifact = new ArtifactType();
98         artifact.setMime_type("application/java-archive");
99         ArrayList<String> ext = new ArrayList<>();
100         ext.add("yaml");
101         ext.add("xml");
102         artifact.setFile_ext(ext);
103         Map<String, ArtifactType> artifactTypes = new HashMap<>();
104         artifactTypes.put("one_artifact", artifact);
105         serviceTemplate.setArtifact_types(artifactTypes);
106
107         NodeType nodeType = new NodeType();
108         nodeType.setDerived_from("tosca.nodes.Root");
109         nodeType.setVersion("1.0.0");
110         nodeType.setDescription("tosca compute test");
111
112         PropertyDefinition propDef1 = new PropertyDefinition();
113         propDef1.setType("integer");
114         propDef1.setDescription("Number of CPUs requested for a software node instance");
115         propDef1.setRequired(true);
116         propDef1.set_default(1);
117
118         Constraint graterOrEqual = new Constraint();
119         graterOrEqual.setGreater_or_equal((float) 5.0);
120         Constraint constraintEqual = new Constraint();
121         constraintEqual.setEqual(5);
122         Constraint greater_than = new Constraint();
123         greater_than.setGreater_than(6.02);
124         Constraint inRange = new Constraint();
125         inRange.setIn_range(new Object[2]);
126         inRange.getIn_range()[0] = 0;
127         inRange.getIn_range()[1] = ToscaConstants.UNBOUNDED;
128
129         List<Constraint> constraints = new ArrayList<>();
130         constraints.add(graterOrEqual);
131         constraints.add(constraintEqual);
132         constraints.add(greater_than);
133         constraints.add(inRange);
134         propDef1.setConstraints(constraints);
135
136         Map<String, PropertyDefinition> properties = new HashMap<>();
137         properties.put("cpu_num", propDef1);
138         nodeType.setProperties(properties);
139
140         Map<String, AttributeDefinition> attributesDef = new HashMap<>();
141         AttributeDefinition attDef = new AttributeDefinition();
142         attDef.setType(PropertyType.STRING.getDisplayName());
143         attDef.set_default("hi");
144         attributesDef.put("attDef1", attDef);
145         nodeType.setAttributes(attributesDef);
146
147         Map<String, RequirementDefinition> reqsDef = new HashMap<>();
148         RequirementDefinition reqDef = new RequirementDefinition();
149         reqDef.setCapability("tosca.cap1");
150         reqDef.getOccurrences()[0] = 5;
151         reqsDef.put("re1", reqDef);
152         List<Map<String, RequirementDefinition>> reqList = new ArrayList<>();
153         reqList.add(reqsDef);
154         nodeType.setRequirements(reqList);
155
156
157         Map<String, CapabilityDefinition> capsDef = new HashMap<>();
158         CapabilityDefinition capdef = new CapabilityDefinition();
159         capdef.setType("tosca.cap");
160         List<String> vvSource = new ArrayList<>();
161         vvSource.add("node1");
162         vvSource.add("node2");
163         capdef.setValid_source_types(vvSource);
164         capsDef.put("cap1", capdef);
165         nodeType.setCapabilities(capsDef);
166
167         Map<String, NodeType> nodeTypes = new HashMap<>();
168         nodeTypes.put("compute_node_type", nodeType);
169         serviceTemplate.setNode_types(nodeTypes);
170
171         TopologyTemplate topologyTemplate = new TopologyTemplate();
172         topologyTemplate.setDescription("topologi template descroption");
173         Map<String, ParameterDefinition> inputs = new HashMap<>();
174         ParameterDefinition paramDef = new ParameterDefinition();
175         paramDef.setType(PropertyType.STRING.getDisplayName());
176         paramDef.setDescription("desc");
177         paramDef.set_default("my default val");
178         paramDef.setRequired(false);
179         paramDef.setEntry_schema(DataModelUtil.createEntrySchema("tosca.myType", null, null));
180         List<Constraint> paramConstraint = new ArrayList<>();
181         Constraint paramConst1 = new Constraint();
182         paramConst1.setGreater_than(6);
183         Constraint paramConst2 = new Constraint();
184         paramConst2.setGreater_or_equal(9);
185         paramConstraint.add(paramConst1);
186         paramConstraint.add(paramConst2);
187         paramDef.setConstraints(paramConstraint);
188         inputs.put("inParam1", paramDef);
189         topologyTemplate.setInputs(inputs);
190
191         Map<String, NodeTemplate> nodeTemplates = new HashMap<>();
192         NodeTemplate nodeTemplate = new NodeTemplate();
193         nodeTemplate.setType("nodeTypeRef");
194         List<String> directives = new ArrayList<>();
195         directives.add(Directive.SELECTABLE.getDisplayName());
196         directives.add(Directive.SUBSTITUTABLE.getDisplayName());
197         nodeTemplate.setDirectives(directives);
198         Map<String, Object> nodeTemplateProperties = new HashMap<>();
199         nodeTemplateProperties.put("prop1", "abcd");
200         nodeTemplateProperties.put("prop2", "{ get_input: my_mysql_rootpw }");
201         nodeTemplate.setProperties(nodeTemplateProperties);
202         Map<String, Object> nodeTemplateAtts = new HashMap<>();
203         nodeTemplateAtts.put("att1", "att1Val");
204         nodeTemplateAtts.put("att2", "{ get_input: my_mysql_rootpw }");
205         nodeTemplate.setAttributes(nodeTemplateAtts);
206
207
208         RequirementAssignment reqAssignment1 = new RequirementAssignment();
209         reqAssignment1.setNode("nodeA");
210         reqAssignment1.setCapability("capA");
211         reqAssignment1.setRelationship("relationB");
212         Object[] reqAssOccurrences = new Object[2];
213         reqAssOccurrences[0] = 1;
214         reqAssOccurrences[1] = 2;
215         reqAssignment1.setOccurrences(reqAssOccurrences);
216         NodeFilter reqNodeFilter = new NodeFilter();
217         List<Constraint> propConstraint1 = new ArrayList<>();
218         Constraint propConst1 = new Constraint();
219         propConst1.setGreater_or_equal(9);
220         propConstraint1.add(propConst1);
221         List<Constraint> propConstraint2 = new ArrayList<>();
222         Constraint propConst2 = new Constraint();
223         propConst2.setMin_length(1);
224         propConstraint2.add(propConst2);
225         Constraint propConst3 = new Constraint();
226         propConst3.setMax_length(2);
227         propConstraint2.add(propConst3);
228         List<Map<String, List<Constraint>>> nodeFilterProp = new ArrayList<>();
229         Map<String, List<Constraint>> propsMap = new HashMap<>();
230         propsMap.put("propName1", propConstraint1);
231         propsMap.put("propName2", propConstraint2);
232         nodeFilterProp.add(propsMap);
233         reqNodeFilter.setProperties(nodeFilterProp);
234         reqAssignment1.setNode_filter(reqNodeFilter);
235
236         RequirementAssignment reqAssignment2 = new RequirementAssignment();
237         reqAssignment2.setNode("nodeA");
238         reqAssignment2.setCapability("capA");
239         reqAssignment2.setRelationship("relationB");
240         Map<String, RequirementAssignment> nodeTemplateRequirement1 = new HashMap<>();
241         Map<String, RequirementAssignment> nodeTemplateRequirement2 = new HashMap<>();
242         nodeTemplateRequirement1.put(REQ1, reqAssignment1);
243         nodeTemplateRequirement2.put(REQ2, reqAssignment2);
244         nodeTemplate.setRequirements(new ArrayList<>());
245         nodeTemplate.getRequirements().add(nodeTemplateRequirement1);
246         nodeTemplate.getRequirements().add(nodeTemplateRequirement2);
247
248         Map<String, CapabilityAssignment> nodeTemplateCapability = new HashMap<>();
249         CapabilityAssignment capAss = new CapabilityAssignment();
250         Map<String, Object> capProps = new HashMap<>();
251         capProps.put("num_cpus", "{ get_input: cpus }");
252         capAss.setProperties(capProps);
253         Map<String, Object> capAtts = new HashMap<>();
254         capAtts.put("num_cpus", "66");
255         capAss.setAttributes(capAtts);
256         nodeTemplateCapability.put("cap1", capAss);
257         nodeTemplate.setCapabilities(nodeTemplateCapability);
258
259         NodeFilter nodeTemplateNodeFilter = new NodeFilter();
260         List<Map<String, List<Constraint>>> nodeFilterProp2 = new ArrayList<>();
261         Map<String, List<Constraint>> propsMap2 = new HashMap<>();
262         Constraint c1 = new Constraint();
263         c1.setEqual("1 MB");
264         List<Constraint> consList = new ArrayList<>();
265         consList.add(c1);
266         propsMap2.put("test1", consList);
267         nodeFilterProp2.add(propsMap2);
268         nodeTemplateNodeFilter.setProperties(nodeFilterProp2);
269         nodeTemplate.setNode_filter(nodeTemplateNodeFilter);
270         nodeTemplates.put("firatNodeTemplate", nodeTemplate);
271         topologyTemplate.setNode_templates(nodeTemplates);
272
273         SubstitutionMapping subMap = new SubstitutionMapping();
274         subMap.setNode_type("myNodeType.node");
275         Map<String, List<String>> mapCapabilities = new HashMap<>();
276         List<String> NodeCap = new ArrayList<>();
277         NodeCap.add("database");
278         NodeCap.add("database_endpoint");
279         mapCapabilities.put("database_endpoint", NodeCap);
280         subMap.setCapabilities(mapCapabilities);
281         topologyTemplate.setSubstitution_mappings(subMap);
282         serviceTemplate.setTopology_template(topologyTemplate);
283
284         String yaml = new YamlUtil().objectToYaml(serviceTemplate);
285         ServiceTemplate serviceTemplateFromYaml = new YamlUtil().yamlToObject(yaml, ServiceTemplate.class);
286         Assert.assertNotNull(serviceTemplateFromYaml);
287     }
288
289
290   @Test
291   public void testYamlToServiceTemplateObj() throws IOException {
292     ServiceTemplate serviceTemplateFromYaml =
293         getServiceTemplate(BASE_DIR + ST);
294     Assert.assertNotNull(serviceTemplateFromYaml);
295   }
296
297     @Test
298     public void testYamlWithInterfaceToServiceTemplateObj() throws IOException {
299         ServiceTemplate serviceTemplateWithOperation = getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
300         Assert.assertNotNull(serviceTemplateWithOperation);
301
302         InterfaceType expectedInterfaceType = createInterfaceType();
303
304         Map<String, InterfaceType> interfaceTypes = DataModelUtil.getInterfaceTypes(serviceTemplateWithOperation);
305         Assert.assertEquals(1, interfaceTypes.size());
306         InterfaceType actualInterfaceType = interfaceTypes.get(INTERFACE_ID);
307         Assert.assertEquals(expectedInterfaceType, actualInterfaceType);
308     }
309
310     @Test
311     public void testAddOperationToInterface() throws IOException {
312         YamlUtil yamlUtil = new YamlUtil();
313         ServiceTemplate serviceTemplateWithInterface = getServiceTemplate(BASE_DIR + ST_WITH_INTERFACE);
314         ServiceTemplate serviceTemplateWithOperation = getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
315
316         OperationDefinition operationDefinition = createOperationDefinition();
317
318         DataModelUtil.addInterfaceOperation(serviceTemplateWithInterface, INTERFACE_ID, OPERATION_START,
319                 operationDefinition);
320         String expectedServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithOperation);
321         String actualServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithInterface);
322         Assert.assertEquals(expectedServiceTemplate, actualServiceTemplate);
323     }
324
325     @Test
326     public void testInterfaceTypeToObjConversion() throws IOException {
327         ServiceTemplate serviceTemplateWithInterface = getServiceTemplate(BASE_DIR + ST_WITH_INTERFACE);
328         ServiceTemplate serviceTemplateWithOperation = getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
329         InterfaceType interfaceType = createInterfaceType();
330
331         Optional<Object> interfaceAsObj = DataModelUtil.convertInterfaceTypeToObj(interfaceType);
332         Assert.assertTrue(interfaceAsObj.isPresent());
333
334         Map<String, Object> interfaceTypes = new HashMap<>();
335         interfaceTypes.put(INTERFACE_ID, interfaceAsObj.get());
336         serviceTemplateWithInterface.setInterface_types(interfaceTypes);
337
338         String expectedServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithOperation);
339         String actualServiceTemplate = yamlUtil.objectToYaml(serviceTemplateWithInterface);
340         Assert.assertEquals(expectedServiceTemplate, actualServiceTemplate);
341     }
342
343     @Test
344     public void testObjToInterfaceTypeConversion() throws IOException, ReflectiveOperationException {
345         ServiceTemplate serviceTemplateWithOperation = getServiceTemplate(BASE_DIR + ST_WITH_OPERATIONS);
346         Map<String, Object> interfaceTypes = serviceTemplateWithOperation.getInterface_types();
347         Object interfaceObj = interfaceTypes.get(INTERFACE_ID);
348         Optional<InterfaceType> actualInterfaceType =
349                 DataModelUtil.convertObjToInterfaceType(INTERFACE_ID, interfaceObj);
350
351         Assert.assertTrue(actualInterfaceType.isPresent());
352         InterfaceType expectedInterfaceType = createInterfaceType();
353         Assert.assertEquals(expectedInterfaceType, actualInterfaceType.get());
354     }
355
356     @Test
357     public void testObjToInterfaceDefinitionTypeConversion() throws IOException, ReflectiveOperationException {
358         ServiceTemplate serviceTemplateWithInterfaceDef = getServiceTemplate(BASE_DIR + ST_WITH_NODE_INTERFACE_DEF);
359         NodeType nodeTypeWithInterface = DataModelUtil.getNodeType(serviceTemplateWithInterfaceDef, NODE_TYPE_ID);
360         Map<String, Object> interfaces = nodeTypeWithInterface.getInterfaces();
361         Object interfaceObj = interfaces.get(INTERFACE_ID);
362
363         Optional<? extends InterfaceDefinition> actualInterfaceDefinition = DataModelUtil
364                                                                                     .convertObjToInterfaceDefinition(
365                                                                                             INTERFACE_ID, interfaceObj,
366                                                                                             InterfaceDefinitionType.class);
367
368         Assert.assertTrue(actualInterfaceDefinition.isPresent());
369
370         InterfaceDefinitionType expectedInterfaceDefinitionType = createInterfaceDefinitionType();
371         Assert.assertEquals(expectedInterfaceDefinitionType, actualInterfaceDefinition.get());
372     }
373
374     @Test
375     public void testObjToInterfaceDefinitionTemplateConversion() throws IOException, ReflectiveOperationException {
376         ServiceTemplate serviceTemplateWithInterfaceDef = getServiceTemplate(BASE_DIR + ST_WITH_INTERFACE_DEF);
377         NodeTemplate nodeTemplateWithInterface =
378                 DataModelUtil.getNodeTemplate(serviceTemplateWithInterfaceDef, NODE_TEMPLATE_ID);
379         Map<String, Object> interfaces = nodeTemplateWithInterface.getInterfaces();
380         Object interfaceObj = interfaces.get(INTERFACE_ID);
381
382         Optional<? extends InterfaceDefinition> actualInterfaceDefinition = DataModelUtil
383                                                                                     .convertObjToInterfaceDefinition(
384                                                                                             INTERFACE_ID, interfaceObj,
385                                                                                             InterfaceDefinitionTemplate.class);
386
387         Assert.assertTrue(actualInterfaceDefinition.isPresent());
388         InterfaceDefinitionTemplate expectedInterfaceDefinitionTemplate = createInterfaceDefinitionTemplate();
389         Assert.assertEquals(expectedInterfaceDefinitionTemplate, actualInterfaceDefinition.get());
390     }
391
392     @Test
393     public void testYamlToServiceTemplateIncludingHeatExtend() throws IOException {
394         ToscaExtensionYamlUtil toscaExtensionYamlUtil = new ToscaExtensionYamlUtil();
395         try (InputStream yamlFile = toscaExtensionYamlUtil
396                                             .loadYamlFileIs(BASE_DIR + "/serviceTemplateHeatExtend.yaml")) {
397             ServiceTemplate serviceTemplateFromYaml =
398                     toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
399             ParameterDefinitionExt parameterDefinitionExt =
400                     (ParameterDefinitionExt) serviceTemplateFromYaml.getTopology_template().getInputs().get("inParam1");
401             Assert.assertNotNull(parameterDefinitionExt.getLabel());
402             String backToYamlString = toscaExtensionYamlUtil.objectToYaml(serviceTemplateFromYaml);
403             Assert.assertNotNull(backToYamlString);
404         }
405     }
406
407     @Test
408     public void testServiceFilter() throws IOException {
409         ServiceTemplate serviceTemplateWithServiceFilter = getServiceTemplateExt(BASE_DIR + ST_WITH_SERVICE_FILTER);
410
411         NodeTemplate firstNodeTemplate =
412                 DataModelUtil.getNodeTemplate(serviceTemplateWithServiceFilter, FIRST_NODE_TEMPLATE);
413         Map<String, RequirementAssignment> nodeTemplateRequirements =
414                 DataModelUtil.getNodeTemplateRequirements(firstNodeTemplate);
415
416         Object req1 = nodeTemplateRequirements.get(REQ1);
417         Assert.assertEquals(true, req1 instanceof org.onap.sdc.tosca.datatypes.model.extension.RequirementAssignment);
418         Assert.assertNotNull(((org.onap.sdc.tosca.datatypes.model.extension.RequirementAssignment)req1).getService_filter());
419         List<Map<String, List<Constraint>>> properties =
420                 ((org.onap.sdc.tosca.datatypes.model.extension.RequirementAssignment) req1).getService_filter()
421                                                                                            .getProperties();
422         Assert.assertNotNull(properties);
423         List<Constraint> vmdNameConstrain = properties.get(0).get(VMD_NAME);
424         Assert.assertNotNull(vmdNameConstrain);
425         Assert.assertNotNull(vmdNameConstrain.get(0).getEqual());
426
427         List<Map<String, CapabilityFilter>> capabilities =
428                 ((org.onap.sdc.tosca.datatypes.model.extension.RequirementAssignment) req1).getService_filter()
429                                                                                            .getCapabilities();
430         Assert.assertNotNull(capabilities);
431         CapabilityFilter capabilityFilter = capabilities.get(0).get(DIRECTOR);
432         Assert.assertNotNull(capabilityFilter);
433         Assert.assertNotNull(capabilityFilter.getProperties());
434
435
436         Object req2 = nodeTemplateRequirements.get(REQ2);
437         Assert.assertEquals(true, req2 instanceof org.onap.sdc.tosca.datatypes.model.extension.RequirementAssignment);
438         Assert.assertNotNull(((org.onap.sdc.tosca.datatypes.model.extension.RequirementAssignment)req2).getService_filter());
439         Object tosca_id =
440                 ((org.onap.sdc.tosca.datatypes.model.extension.RequirementAssignment) req2).getService_filter()
441                                                                                            .getTosca_id();
442         Assert.assertNotNull(tosca_id);
443         Assert.assertEquals(SERVICE_FILTER_TOSCA_ID, tosca_id.toString());
444
445
446         String serviceTemplateYaml = toscaExtensionYamlUtil.objectToYaml(serviceTemplateWithServiceFilter);
447         Assert.assertNotNull(serviceTemplateYaml);
448
449     }
450
451     private ServiceTemplate getServiceTemplate(String inputPath) throws IOException {
452         try (InputStream yamlFile = yamlUtil.loadYamlFileIs(inputPath)) {
453             return yamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
454         }
455     }
456
457     private ServiceTemplate getServiceTemplateExt(String inputPath) throws IOException {
458         try (InputStream yamlFile = toscaExtensionYamlUtil.loadYamlFileIs(inputPath)) {
459             return toscaExtensionYamlUtil.yamlToObject(yamlFile, ServiceTemplate.class);
460         }
461     }
462
463     private InterfaceType createInterfaceType() {
464         OperationDefinition operationDefinition = createOperationDefinition();
465         InterfaceType interfaceType = new InterfaceType();
466         interfaceType.setDescription("test interface");
467         interfaceType.addOperation(OPERATION_START, operationDefinition);
468         return interfaceType;
469     }
470
471     private OperationDefinition createOperationDefinition() {
472         OperationDefinition operationDefinition = new OperationDefinition();
473         operationDefinition.setDescription(OPERATION_DESC);
474         return operationDefinition;
475     }
476
477     private InterfaceDefinitionType createInterfaceDefinitionType() {
478         OperationDefinitionType operationDefinitionType = createOperationDefinitionType();
479         InterfaceDefinitionType interfaceDefinitionType = new InterfaceDefinitionType();
480         interfaceDefinitionType.setType(INTERFACE_TYPE_VALUE);
481         interfaceDefinitionType.addOperation(OPERATION_START, operationDefinitionType);
482         return interfaceDefinitionType;
483     }
484
485     private InterfaceDefinitionTemplate createInterfaceDefinitionTemplate() {
486         OperationDefinitionTemplate operationDefinitionTemplate = createOperationDefinitionTemplate();
487         InterfaceDefinitionTemplate interfaceDefinitionTemplate = new InterfaceDefinitionTemplate();
488         interfaceDefinitionTemplate.addOperation(OPERATION_START, operationDefinitionTemplate);
489         return interfaceDefinitionTemplate;
490     }
491
492     private OperationDefinitionTemplate createOperationDefinitionTemplate() {
493         OperationDefinitionTemplate operationDefinitionTemplate = new OperationDefinitionTemplate();
494         operationDefinitionTemplate.setDescription(OPERATION_DESC);
495         Implementation implementation = new Implementation();
496         implementation.setPrimary(PRIMARY_IMPL);
497         List<String> dependencies = new ArrayList<>();
498         dependencies.add(DEPENDENCY_NAME);
499         implementation.setDependencies(dependencies);
500         operationDefinitionTemplate.setImplementation(implementation);
501         return operationDefinitionTemplate;
502     }
503
504     private OperationDefinitionType createOperationDefinitionType() {
505         OperationDefinitionType operationDefinitionType = new OperationDefinitionType();
506         operationDefinitionType.setDescription(OPERATION_DESC);
507         operationDefinitionType.setImplementation(IMPLEMENTATION_NAME);
508         PropertyDefinition propertyDefinition = new PropertyDefinition();
509         propertyDefinition.setType(STRING_TYPE);
510         return operationDefinitionType;
511     }
512 }
513
514
515
516
517
518