41de118272de829cb4f3cb0801092b70b2873992
[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 com.google.code.beanmatchers.BeanMatchers.hasValidBeanEqualsFor;
25 import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanHashCodeFor;
26 import static com.google.code.beanmatchers.BeanMatchers.hasValidBeanToStringFor;
27 import static com.google.code.beanmatchers.BeanMatchers.hasValidGettersAndSettersExcluding;
28 import static org.junit.Assert.assertEquals;
29 import static org.junit.Assert.assertThat;
30
31 import java.util.ArrayList;
32 import java.util.HashMap;
33 import org.junit.Test;
34 import org.openecomp.sdc.be.datatypes.elements.CapabilityDataDefinition.OwnerType;
35 import org.openecomp.sdc.be.model.tosca.constraints.EqualConstraint;
36
37 public class CapabilityDefinitionTest {
38
39         private static final String OWNER_NAME = "OWNER";
40         private static final String OWNER_ID = "OWNER_ID";
41         private static final String NAME = "NAME";
42         private static final OwnerType OWNER_TYPE = OwnerType.COMPONENT_INSTANCE;
43         private static final String PROP = "PROP";
44         private static final String EQ = "eq";
45         private static final String PROPERTIES = "properties";
46         private static final String VALUE = "VALUE";
47
48         @Test
49         public void hasValidGettersAndSettersTest() {
50                 assertThat(CapabilityDefinition.class,
51                         hasValidGettersAndSettersExcluding("empty", "ownerIdIfEmpty", "version"));
52         }
53
54         @Test
55         public void shouldHaveValidToString() {
56                 assertThat(CapabilityDefinition.class, hasValidBeanToStringFor(PROPERTIES));
57         }
58
59         @Test
60         public void shouldHaveEquals() {
61                 assertThat(CapabilityDefinition.class, hasValidBeanEqualsFor(PROPERTIES));
62         }
63
64         @Test
65         public void shouldHaveHashCode() {
66                 assertThat(CapabilityDefinition.class, hasValidBeanHashCodeFor(PROPERTIES));
67         }
68
69         @Test
70         public void testParamConstructor() {
71                 EqualConstraint equalConstraint = new EqualConstraint(EQ);
72                 CapabilityDefinition capabilityDefinition = createCapabilityDefinition(equalConstraint);
73                 assertEquals(capabilityDefinition.getOwnerName(), OWNER_NAME);
74                 assertEquals(capabilityDefinition.getProperties().get(0).getConstraints().get(0), equalConstraint);
75                 assertEquals(capabilityDefinition.getName(), NAME);
76                 assertEquals(capabilityDefinition.getOwnerType(), OWNER_TYPE);
77         }
78
79         @Test
80         public void testCopyConstructor() {
81                 EqualConstraint equalConstraint = new EqualConstraint(EQ);
82                 CapabilityDefinition capabilityDefinition = createCapabilityDefinition(equalConstraint);
83                 CapabilityDefinition copiedCapabilityDefinition = new CapabilityDefinition(capabilityDefinition);
84                 assertEquals(copiedCapabilityDefinition.getOwnerName(), OWNER_NAME);
85                 assertEquals(copiedCapabilityDefinition.getProperties().get(0).getConstraints().get(0), equalConstraint);
86                 assertEquals(copiedCapabilityDefinition.getName(), NAME);
87                 assertEquals(copiedCapabilityDefinition.getOwnerType(), OWNER_TYPE);
88         }
89
90         @Test
91         public void shouldUpdateCapabilityProperties() {
92                 EqualConstraint equalConstraint = new EqualConstraint(EQ);
93                 CapabilityDefinition referenceCapabilityDefinition = createCapabilityDefinition(equalConstraint);
94                 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
95                 ArrayList<ComponentInstanceProperty> properties = new ArrayList<>();
96                 ComponentInstanceProperty componentInstanceProperty = new ComponentInstanceProperty();
97                 componentInstanceProperty.setName(NAME);
98                 properties.add(componentInstanceProperty);
99                 capabilityDefinition.setProperties(properties);
100                 capabilityDefinition.updateCapabilityProperties(referenceCapabilityDefinition);
101                 assertEquals(capabilityDefinition.getProperties().get(0).getValue(), VALUE);
102         }
103
104         @Test
105         public void shouldUpdateEmptyCapabilityOwnerFields() {
106                 CapabilityDefinition capabilityDefinition = new CapabilityDefinition();
107                 capabilityDefinition.updateEmptyCapabilityOwnerFields(OWNER_ID, OWNER_NAME, OWNER_TYPE);
108                 assertEquals(capabilityDefinition.getOwnerName(), OWNER_NAME);
109                 assertEquals(capabilityDefinition.getOwnerType(), OWNER_TYPE);
110                 assertEquals(capabilityDefinition.getOwnerId(), OWNER_ID);
111         }
112
113         private CapabilityDefinition createCapabilityDefinition(EqualConstraint equalConstraint){
114                 CapabilityTypeDefinition capabilityTypeDefinition = new CapabilityTypeDefinition();
115                 HashMap<String, PropertyDefinition> properties = new HashMap<>();
116                 PropertyDefinition propertyDefinition = new PropertyDefinition();
117                 ArrayList<PropertyConstraint> constraints = new ArrayList<>();
118                 constraints.add(equalConstraint);
119                 propertyDefinition.setConstraints(constraints);
120                 propertyDefinition.setName(NAME);
121                 propertyDefinition.setValue(VALUE);
122                 properties.put(PROP, propertyDefinition);
123                 capabilityTypeDefinition.setProperties(properties);
124                 return new CapabilityDefinition(capabilityTypeDefinition, OWNER_NAME, NAME,
125                         OWNER_TYPE);
126         }
127
128 }