Raised JUnit coverage for tosca package
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / tosca / PropertyConvertorTest.java
1 package org.openecomp.sdc.be.tosca;
2
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;
8
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;
14 import java.util.Map;
15
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;
26
27 import fj.data.Either;
28
29 public class PropertyConvertorTest {
30     private PropertyDefinition property;
31     Map<String, DataTypeDefinition> dataTypes;
32
33     @Before
34     public void setUp(){
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());
40     }
41
42     @Test
43     public void testConvertProperty() {
44         SchemaDefinition schema = new SchemaDefinition();
45         schema.setProperty(property);
46         
47         property.setSchema(schema);
48         
49         PropertyConvertor.getInstance().convertProperty(dataTypes, property, true);
50     }
51
52     @Test
53     public void convertPropertyWhenValueAndDefaultNull() {
54         ToscaProperty prop = PropertyConvertor.getInstance().convertProperty(dataTypes, property, false);
55         assertNotNull(prop);
56         assertNull(prop.getDefaultp());
57     }
58
59     @Test
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());
66     }
67
68     @Test
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());
83         int cnt = 0;
84         for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
85             ToscaProperty prop = it.next();
86             if (prop.getDefaultp() == null) {
87                 cnt++;
88             }
89         }
90         assertEquals(1, cnt);
91     }
92
93     @Test
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());
112         }
113     }
114
115     @Test
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());
132         }
133      }
134
135     @Test
136     public void convertPropertyWhichStartsWithSemiColon() throws Exception {
137         PropertyDefinition property1 = new PropertyDataDefinitionBuilder()
138                 .setDefaultValue("::")
139                 .setType(ToscaPropertyType.STRING.getType())
140                 .build();
141         ToscaProperty toscaProperty = PropertyConvertor.getInstance().convertProperty(Collections.emptyMap(), property1, false);
142         assertThat(toscaProperty.getDefaultp()).isEqualTo("::");
143     }
144
145     @Test
146     public void convertPropertyWhichStartsWithSlash() throws Exception {
147         PropertyDefinition property1 = new PropertyDataDefinitionBuilder()
148                 .setDefaultValue("/")
149                 .setType(ToscaPropertyType.STRING.getType())
150                 .build();
151         ToscaProperty toscaProperty = PropertyConvertor.getInstance().convertProperty(Collections.emptyMap(), property1, false);
152         assertThat(toscaProperty.getDefaultp()).isEqualTo("/");
153     }
154     
155     @Test
156     public void testConvertToToscaObject() {
157                 dataTypes.put(ToscaPropertyType.Root.getType(), new DataTypeDefinition());
158         
159         PropertyConvertor.getInstance().convertToToscaObject(ToscaPropertyType.Root.getType(), "", "innerType", dataTypes);     
160     }
161     
162     @Test
163     public void testConvertToToscaObjectWhenPropertyTypeAndInnerTypeNull() {
164         dataTypes.put(ToscaPropertyType.Root.getType(), new DataTypeDefinition());
165         
166         PropertyConvertor.getInstance().convertToToscaObject(null, "value", null, dataTypes);
167     }
168     
169     @Test
170     public void testConvertToToscaObjectWhenIsScalarTypeIsNotNull() {
171         DataTypeDefinition def = new DataTypeDefinition();
172         def.setName("integer");
173         dataTypes.put("type", def);
174         
175         PropertyConvertor.getInstance().convertToToscaObject("type", "value", "innerType", dataTypes);
176     }
177
178 }