push addional code
[sdc.git] / openecomp-be / lib / openecomp-tosca-lib / src / test / java / org / openecomp / sdc / tosca / datatypes / model / CapabilityDefinitionTest.java
1 package org.openecomp.sdc.tosca.datatypes.model;
2
3 import org.openecomp.sdc.tosca.services.ToscaConstants;
4 import org.openecomp.core.utilities.yaml.YamlUtil;
5 import org.junit.Assert;
6 import org.junit.Test;
7
8 import java.util.ArrayList;
9 import java.util.HashMap;
10 import java.util.List;
11 import java.util.Map;
12
13 public class CapabilityDefinitionTest {
14
15   @Test
16   public void cloneTest() {
17     CapabilityDefinition capDef1 = new CapabilityDefinition();
18     Map<String, AttributeDefinition> attributes = new HashMap<>();
19     attributes.put("key1", getAttributeDefinition());
20     capDef1.setAttributes(attributes);
21
22     capDef1.setDescription("This is my desc");
23     capDef1.setOccurrences(getMockOccurrences());
24
25     Map<String, PropertyDefinition> properties = new HashMap<>();
26     PropertyDefinition propertyDefinition = getMockPropertyDefinition();
27     properties.put("key1", propertyDefinition);
28     capDef1.setProperties(properties);
29     capDef1.setType("My Type");
30     List<String> valid_source_types = new ArrayList<>();
31     valid_source_types.add("nonono");
32     capDef1.setValid_source_types(valid_source_types);
33
34     CapabilityDefinition capDef2 = capDef1.clone();
35     NodeType nodeType = new NodeType();
36     nodeType.setCapabilities(new HashMap<>());
37     nodeType.getCapabilities().put("cap1", capDef1);
38     nodeType.getCapabilities().put("cap2", capDef2);
39
40     String yamlString = new YamlUtil().objectToYaml(nodeType);
41     Boolean passResult = !yamlString.contains("&") && !yamlString.contains("*");
42     Assert.assertEquals(true, passResult);
43   }
44
45   private PropertyDefinition getMockPropertyDefinition() {
46     PropertyDefinition propertyDefinition = new PropertyDefinition();
47     propertyDefinition.setConstraints(getMockConstraints());
48     propertyDefinition.setDescription("desc");
49     propertyDefinition.setType("typeProp");
50     propertyDefinition.set_default(5);
51     propertyDefinition.setEntry_schema(getMockEntrySchema());
52     propertyDefinition.setRequired(false);
53     propertyDefinition.setStatus(Status.UNSUPPORTED);
54     return propertyDefinition;
55   }
56
57   private Object[] getMockOccurrences() {
58     Object[] occurrences = new Object[2];
59     occurrences[0] = 2;
60     occurrences[1] = ToscaConstants.UNBOUNDED;
61     return occurrences;
62   }
63
64   private ArtifactDefinition getMockArtifactDefinition() {
65     ArtifactDefinition artifactDefinition = new ArtifactDefinition();
66     artifactDefinition.setType("type1");
67     artifactDefinition.setDescription("description of OPENECOMP def");
68     artifactDefinition.setDeploy_path("my deployment path");
69     artifactDefinition.setFile("my file");
70     artifactDefinition.setRepository("my repository");
71     return artifactDefinition;
72   }
73
74   private AttributeDefinition getAttributeDefinition() {
75     AttributeDefinition attributeDefinition = new AttributeDefinition();
76     attributeDefinition.setDescription("desc1");
77     attributeDefinition.setType("type1");
78     attributeDefinition.set_default("none");
79     attributeDefinition.setEntry_schema(getMockEntrySchema());
80     attributeDefinition.setStatus(Status.UNSUPPORTED);
81     return attributeDefinition;
82   }
83
84   private EntrySchema getMockEntrySchema() {
85     EntrySchema entrySchema = new EntrySchema();
86     entrySchema.setType("string");
87     entrySchema.setDescription("string for string");
88     List<Constraint> constraints = getMockConstraints();
89     entrySchema.setConstraints(constraints);
90     return entrySchema;
91   }
92
93   private List<Constraint> getMockConstraints() {
94     List<Constraint> constraints = new ArrayList<>();
95     Constraint constraint = new Constraint();
96     constraint.setEqual("5");
97     constraints.add(constraint);
98     return constraints;
99   }
100
101 }