Support for defining attributes on a node_type
[sdc.git] / catalog-model / src / test / java / org / openecomp / sdc / be / model / CapabilityDefinitionTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  * Modifications copyright (c) 2019 Nokia
20  * ================================================================================
21  */
22 package org.openecomp.sdc.be.model;
23
24 import static org.junit.Assert.assertEquals;
25
26 import java.util.ArrayList;
27 import java.util.HashMap;
28 import org.junit.Test;
29 import org.openecomp.sdc.be.datatypes.elements.CapabilityDataDefinition.OwnerType;
30 import org.openecomp.sdc.be.model.tosca.constraints.EqualConstraint;
31
32 public class CapabilityDefinitionTest {
33
34         private static final String OWNER_NAME = "OWNER";
35         private static final String OWNER_ID = "OWNER_ID";
36         private static final String NAME = "NAME";
37         private static final OwnerType OWNER_TYPE = OwnerType.COMPONENT_INSTANCE;
38         private static final String PROP = "PROP";
39         private static final String EQ = "eq";
40         private static final String PROPERTIES = "properties";
41         private static final String VALUE = "VALUE";
42
43         @Test
44         public void testParamConstructor() {
45                 EqualConstraint equalConstraint = new EqualConstraint(EQ);
46                 CapabilityDefinition capabilityDefinition = createCapabilityDefinition(equalConstraint);
47                 assertEquals(capabilityDefinition.getOwnerName(), OWNER_NAME);
48                 assertEquals(capabilityDefinition.getProperties().get(0).getConstraints().get(0), equalConstraint);
49                 assertEquals(capabilityDefinition.getName(), NAME);
50                 assertEquals(capabilityDefinition.getOwnerType(), OWNER_TYPE);
51         }
52
53         @Test
54         public void testCopyConstructor() {
55                 EqualConstraint equalConstraint = new EqualConstraint(EQ);
56                 CapabilityDefinition capabilityDefinition = createCapabilityDefinition(equalConstraint);
57                 CapabilityDefinition copiedCapabilityDefinition = new CapabilityDefinition(capabilityDefinition);
58                 assertEquals(copiedCapabilityDefinition.getOwnerName(), OWNER_NAME);
59                 assertEquals(copiedCapabilityDefinition.getProperties().get(0).getConstraints().get(0), equalConstraint);
60                 assertEquals(copiedCapabilityDefinition.getName(), NAME);
61                 assertEquals(copiedCapabilityDefinition.getOwnerType(), OWNER_TYPE);
62         }
63
64         @Test
65         public void shouldUpdateCapabilityProperties() {
66                 EqualConstraint equalConstraint = new EqualConstraint(EQ);
67                 CapabilityDefinition referenceCapabilityDefinition = createCapabilityDefinition(equalConstraint);
68                 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
69                 ArrayList<ComponentInstanceProperty> properties = new ArrayList<>();
70                 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
71                 componentInstanceProperty.setName(NAME);
72                 properties.add(componentInstanceProperty);
73                 capabilityDefinition.setProperties(properties);
74                 capabilityDefinition.updateCapabilityProperties(referenceCapabilityDefinition);
75                 assertEquals(capabilityDefinition.getProperties().get(0).getValue(), VALUE);
76         }
77
78         @Test
79         public void shouldUpdateEmptyCapabilityOwnerFields() {
80                 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
81                 capabilityDefinition.updateEmptyCapabilityOwnerFields(OWNER_ID, OWNER_NAME, OWNER_TYPE);
82                 assertEquals(capabilityDefinition.getOwnerName(), OWNER_NAME);
83                 assertEquals(capabilityDefinition.getOwnerType(), OWNER_TYPE);
84                 assertEquals(capabilityDefinition.getOwnerId(), OWNER_ID);
85         }
86
87         private CapabilityDefinition createCapabilityDefinition(EqualConstraint equalConstraint){
88                 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
89                 HashMap<String, PropertyDefinition> properties = new HashMap<>();
90                 PropertyDefinition propertyDefinition = new PropertyDefinition();
91                 ArrayList<PropertyConstraint> constraints = new ArrayList<>();
92                 constraints.add(equalConstraint);
93                 propertyDefinition.setConstraints(constraints);
94                 propertyDefinition.setName(NAME);
95                 propertyDefinition.setValue(VALUE);
96                 properties.put(PROP, propertyDefinition);
97                 capabilityTypeDefinition.setProperties(properties);
98                 return new CapabilityDefinition(capabilityTypeDefinition, OWNER_NAME, NAME,
99                         OWNER_TYPE);
100         }
101
102 }