1 package org.openecomp.sdc.be.tosca;
3 import static org.assertj.core.api.Assertions.assertThat;
4 import static org.junit.Assert.assertEquals;
5 import static org.junit.Assert.assertNotNull;
6 import static org.junit.Assert.assertNull;
7 import static org.junit.Assert.assertTrue;
9 import java.util.ArrayList;
10 import java.util.Collections;
11 import java.util.HashMap;
12 import java.util.Iterator;
13 import java.util.List;
16 import org.junit.Before;
17 import org.junit.Test;
18 import org.openecomp.sdc.be.components.utils.PropertyDataDefinitionBuilder;
19 import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition;
20 import org.openecomp.sdc.be.model.DataTypeDefinition;
21 import org.openecomp.sdc.be.model.PropertyDefinition;
22 import org.openecomp.sdc.be.model.Resource;
23 import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
24 import org.openecomp.sdc.be.tosca.model.ToscaNodeType;
25 import org.openecomp.sdc.be.tosca.model.ToscaProperty;
27 import fj.data.Either;
29 public class PropertyConvertorTest {
30 private PropertyDefinition property;
31 Map<String, DataTypeDefinition> dataTypes;
35 property = new PropertyDefinition();
36 property.setName("myProperty");
37 property.setType(ToscaPropertyType.INTEGER.getType());
38 dataTypes = new HashMap();
39 dataTypes.put(property.getName(), new DataTypeDefinition());
43 public void testConvertProperty() {
44 SchemaDefinition schema = new SchemaDefinition();
45 schema.setProperty(property);
47 property.setSchema(schema);
49 PropertyConvertor.getInstance().convertProperty(dataTypes, property, true);
53 public void convertPropertyWhenValueAndDefaultNull() {
54 ToscaProperty prop = PropertyConvertor.getInstance().convertProperty(dataTypes, property, false);
56 assertNull(prop.getDefaultp());
60 public void convertPropertyWhenValueNullAndDefaultNotEmpty() {
61 final String def = "1";
62 property.setDefaultValue(def);
63 ToscaProperty result = PropertyConvertor.getInstance().convertProperty(dataTypes, property, false);
64 assertNotNull(result);
65 assertEquals(Integer.valueOf(def), result.getDefaultp());
69 public void convertPropertiesWhenValueAndDefaultNullInOne() {
70 PropertyDefinition property1 = new PropertyDefinition();
71 property1.setName("otherProperty");
72 property1.setType(ToscaPropertyType.INTEGER.getType());
73 property1.setDefaultValue("2");
74 dataTypes.put(property1.getName(), new DataTypeDefinition());
75 Resource resource = new Resource();
76 List<PropertyDefinition> properties = new ArrayList();
77 properties.add(property);
78 properties.add(property1);
79 resource.setProperties(properties);
80 Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
81 assertTrue(result.isLeft());
82 assertEquals(2, result.left().value().getProperties().size());
84 for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
85 ToscaProperty prop = it.next();
86 if (prop.getDefaultp() == null) {
94 public void convertPropertiesWhenValueAndDefaultExist() {
95 PropertyDefinition property1 = new PropertyDefinition();
96 property1.setName("otherProperty");
97 property1.setType(ToscaPropertyType.INTEGER.getType());
98 property1.setDefaultValue("2");
99 property.setDefaultValue("1");
100 dataTypes.put(property1.getName(), new DataTypeDefinition());
101 Resource resource = new Resource();
102 List<PropertyDefinition> properties = new ArrayList();
103 properties.add(property);
104 properties.add(property1);
105 resource.setProperties(properties);
106 Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
107 assertTrue(result.isLeft());
108 assertEquals(2, result.left().value().getProperties().size());
109 for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
110 ToscaProperty prop = it.next();
111 assertNotNull(prop.getDefaultp());
116 public void convertPropertiesWhenValueAndDefaultNullInAll() {
117 PropertyDefinition property1 = new PropertyDefinition();
118 property1.setName("otherProperty");
119 property1.setType(ToscaPropertyType.INTEGER.getType());
120 dataTypes.put(property1.getName(), new DataTypeDefinition());
121 Resource resource = new Resource();
122 List<PropertyDefinition> properties = new ArrayList();
123 properties.add(property);
124 properties.add(property1);
125 resource.setProperties(properties);
126 Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
127 assertTrue(result.isLeft());
128 assertEquals(2, result.left().value().getProperties().size());
129 for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
130 ToscaProperty prop = it.next();
131 assertNull(prop.getDefaultp());
136 public void convertPropertyWhichStartsWithSemiColon() throws Exception {
137 PropertyDefinition property1 = new PropertyDataDefinitionBuilder()
138 .setDefaultValue("::")
139 .setType(ToscaPropertyType.STRING.getType())
141 ToscaProperty toscaProperty = PropertyConvertor.getInstance().convertProperty(Collections.emptyMap(), property1, false);
142 assertThat(toscaProperty.getDefaultp()).isEqualTo("::");
146 public void convertPropertyWhichStartsWithSlash() throws Exception {
147 PropertyDefinition property1 = new PropertyDataDefinitionBuilder()
148 .setDefaultValue("/")
149 .setType(ToscaPropertyType.STRING.getType())
151 ToscaProperty toscaProperty = PropertyConvertor.getInstance().convertProperty(Collections.emptyMap(), property1, false);
152 assertThat(toscaProperty.getDefaultp()).isEqualTo("/");
156 public void testConvertToToscaObject() {
157 dataTypes.put(ToscaPropertyType.Root.getType(), new DataTypeDefinition());
159 PropertyConvertor.getInstance().convertToToscaObject(ToscaPropertyType.Root.getType(), "", "innerType", dataTypes);
163 public void testConvertToToscaObjectWhenPropertyTypeAndInnerTypeNull() {
164 dataTypes.put(ToscaPropertyType.Root.getType(), new DataTypeDefinition());
166 PropertyConvertor.getInstance().convertToToscaObject(null, "value", null, dataTypes);
170 public void testConvertToToscaObjectWhenIsScalarTypeIsNotNull() {
171 DataTypeDefinition def = new DataTypeDefinition();
172 def.setName("integer");
173 dataTypes.put("type", def);
175 PropertyConvertor.getInstance().convertToToscaObject("type", "value", "innerType", dataTypes);