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