139de137d9694838b840d08525cc2b0c2e5f6b14
[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.model.DataTypeDefinition;
20 import org.openecomp.sdc.be.model.PropertyDefinition;
21 import org.openecomp.sdc.be.model.Resource;
22 import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
23 import org.openecomp.sdc.be.tosca.model.ToscaNodeType;
24 import org.openecomp.sdc.be.tosca.model.ToscaProperty;
25
26 import fj.data.Either;
27
28 public class PropertyConvertorTest {
29     private PropertyDefinition property;
30     Map<String, DataTypeDefinition> dataTypes;
31
32     @Before
33     public void setUp(){
34         property = new PropertyDefinition();
35         property.setName("myProperty");
36         property.setType(ToscaPropertyType.INTEGER.getType());
37         dataTypes = new HashMap();
38         dataTypes.put(property.getName(), new DataTypeDefinition());
39     }
40
41
42     @Test
43     public void convertPropertyWhenValueAndDefaultNull() {
44         ToscaProperty prop = PropertyConvertor.getInstance().convertProperty(dataTypes, property, false);
45         assertNotNull(prop);
46         assertNull(prop.getDefaultp());
47     }
48
49     @Test
50     public void convertPropertyWhenValueNullAndDefaultNotEmpty() {
51         final String def = "1";
52         property.setDefaultValue(def);
53         ToscaProperty result = PropertyConvertor.getInstance().convertProperty(dataTypes, property, false);
54         assertNotNull(result);
55         assertEquals(Integer.valueOf(def), result.getDefaultp());
56     }
57
58     @Test
59     public void convertPropertiesWhenValueAndDefaultNullInOne() {
60         PropertyDefinition property1 = new PropertyDefinition();
61         property1.setName("otherProperty");
62         property1.setType(ToscaPropertyType.INTEGER.getType());
63         property1.setDefaultValue("2");
64         dataTypes.put(property1.getName(), new DataTypeDefinition());
65         Resource resource = new Resource();
66         List<PropertyDefinition> properties = new ArrayList();
67         properties.add(property);
68         properties.add(property1);
69         resource.setProperties(properties);
70         Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
71         assertTrue(result.isLeft());
72         assertEquals(2, result.left().value().getProperties().size());
73         int cnt = 0;
74         for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
75             ToscaProperty prop = it.next();
76             if (prop.getDefaultp() == null) {
77                 cnt++;
78             }
79         }
80         assertEquals(1, cnt);
81     }
82
83     @Test
84     public void convertPropertiesWhenValueAndDefaultExist() {
85         PropertyDefinition property1 = new PropertyDefinition();
86         property1.setName("otherProperty");
87         property1.setType(ToscaPropertyType.INTEGER.getType());
88         property1.setDefaultValue("2");
89         property.setDefaultValue("1");
90         dataTypes.put(property1.getName(), new DataTypeDefinition());
91         Resource resource = new Resource();
92         List<PropertyDefinition> properties = new ArrayList();
93         properties.add(property);
94         properties.add(property1);
95         resource.setProperties(properties);
96         Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
97         assertTrue(result.isLeft());
98         assertEquals(2, result.left().value().getProperties().size());
99         for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
100             ToscaProperty prop = it.next();
101             assertNotNull(prop.getDefaultp());
102         }
103     }
104
105     @Test
106     public void convertPropertiesWhenValueAndDefaultNullInAll() {
107         PropertyDefinition property1 = new PropertyDefinition();
108         property1.setName("otherProperty");
109         property1.setType(ToscaPropertyType.INTEGER.getType());
110         dataTypes.put(property1.getName(), new DataTypeDefinition());
111         Resource resource = new Resource();
112         List<PropertyDefinition> properties = new ArrayList();
113         properties.add(property);
114         properties.add(property1);
115         resource.setProperties(properties);
116         Either<ToscaNodeType, ToscaError> result = PropertyConvertor.getInstance().convertProperties(resource, new ToscaNodeType(), dataTypes);
117         assertTrue(result.isLeft());
118         assertEquals(2, result.left().value().getProperties().size());
119         for (Iterator<ToscaProperty> it = result.left().value().getProperties().values().iterator(); it.hasNext(); ) {
120             ToscaProperty prop = it.next();
121             assertNull(prop.getDefaultp());
122         }
123      }
124
125     @Test
126     public void convertPropertyWhichStartsWithSemiColon() throws Exception {
127         PropertyDefinition property1 = new PropertyDataDefinitionBuilder()
128                 .setDefaultValue("::")
129                 .setType(ToscaPropertyType.STRING.getType())
130                 .build();
131         ToscaProperty toscaProperty = PropertyConvertor.getInstance().convertProperty(Collections.emptyMap(), property1, false);
132         assertThat(toscaProperty.getDefaultp()).isEqualTo("::");
133     }
134
135     @Test
136     public void convertPropertyWhichStartsWithSlash() 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 }