2 * Copyright © 2017-2018 AT&T Intellectual Property.
\r
3 * Modifications Copyright © 2018 IBM.
\r
5 * Licensed under the Apache License, Version 2.0 (the "License");
\r
6 * you may not use this file except in compliance with the License.
\r
7 * You may obtain a copy of the License at
\r
9 * http://www.apache.org/licenses/LICENSE-2.0
\r
11 * Unless required by applicable law or agreed to in writing, software
\r
12 * distributed under the License is distributed on an "AS IS" BASIS,
\r
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
14 * See the License for the specific language governing permissions and
\r
15 * limitations under the License.
\r
18 package org.onap.ccsdk.config.model.utils;
\r
20 import static org.junit.Assert.assertTrue;
\r
21 import java.io.File;
\r
22 import java.util.ArrayList;
\r
23 import java.util.HashMap;
\r
24 import java.util.List;
\r
25 import java.util.Map;
\r
26 import org.junit.Test;
\r
27 import org.onap.ccsdk.config.model.ConfigModelConstant;
\r
28 import org.onap.ccsdk.config.model.ConfigModelException;
\r
29 import org.onap.ccsdk.config.model.ValidTypes;
\r
30 import org.onap.ccsdk.config.model.data.PropertyDefinition;
\r
31 import org.onap.ccsdk.config.model.data.ResourceAssignment;
\r
32 import org.onap.ccsdk.config.model.data.dict.ResourceDefinition;
\r
33 import com.fasterxml.jackson.core.type.TypeReference;
\r
34 import com.fasterxml.jackson.databind.JsonNode;
\r
35 import com.fasterxml.jackson.databind.ObjectMapper;
\r
37 public class ResourceAssignmentUtilsTest {
\r
40 public void testGetArtifactNodeContent() {
\r
41 String nodeTemplateName = "nodeTemplateNmae";
\r
42 String templateContent = "content";
\r
43 Map<String, Object> context = new HashMap<String, Object>();
\r
44 context.put(ConfigModelConstant.PROPERTY_NODE_TEMPLATES_DOT + nodeTemplateName + ".content", templateContent);
\r
46 String retrievedContent = ResourceAssignmentUtils.getArtifactNodeContent(nodeTemplateName, context);
\r
48 assertTrue(templateContent.equals(retrievedContent));
\r
52 public void testGetArtifactNodeMapping() {
\r
53 String nodeTemplateName = "nodeTemplateNmae";
\r
54 String templateContent = "[]";
\r
55 Map<String, Object> context = new HashMap<String, Object>();
\r
56 context.put(ConfigModelConstant.PROPERTY_NODE_TEMPLATES_DOT + nodeTemplateName + ".mapping", templateContent);
\r
58 List<ResourceAssignment> map = ResourceAssignmentUtils.getArtifactNodeMapping(nodeTemplateName, context);
\r
59 assertTrue(map.size() == 0);
\r
63 public void testCleanContextTemplateNDictionaryKeys() {
\r
64 String recipeName = "recipe";
\r
65 Map<String, Object> componentContext = new HashMap<String, Object>();
\r
66 componentContext.put(ConfigModelConstant.PROPERTY_ACTION_NAME, recipeName);
\r
67 componentContext.put(ConfigModelConstant.PROPERTY_DICTIONARY_KEY_DOT + recipeName + ".", "value1");
\r
68 componentContext.put(ConfigModelConstant.PROPERTY_RECIPE_KEY_DOT + recipeName + ".", "value2");
\r
69 ResourceAssignmentUtils.cleanContextTemplateNDictionaryKeys(componentContext);
\r
71 assertTrue(componentContext.size() == 1);
\r
75 public void testGetDictionaryKeyValue() {
\r
76 String recipeName = "recipe";
\r
77 String dictionaryName = "dictionaryKey";
\r
78 Map<String, Object> componentContext = new HashMap<String, Object>();
\r
79 componentContext.put(ConfigModelConstant.PROPERTY_ACTION_NAME, recipeName);
\r
80 componentContext.put(ConfigModelConstant.PROPERTY_DICTIONARY_KEY_DOT + recipeName + "." + dictionaryName,
\r
82 ResourceAssignment resourceAssignment = new ResourceAssignment();
\r
83 resourceAssignment.setDictionaryName(dictionaryName);
\r
85 String value = (String) ResourceAssignmentUtils.getDictionaryKeyValue(componentContext, resourceAssignment);
\r
86 assertTrue("value1".equals(value));
\r
90 public void testGetDictionaryKeyValueWithDictionaryDefinition() {
\r
91 String recipeName = "recipe";
\r
92 String dictionaryName = "dictionaryKey";
\r
93 Map<String, Object> componentContext = new HashMap<String, Object>();
\r
94 componentContext.put(ConfigModelConstant.PROPERTY_ACTION_NAME, recipeName);
\r
95 componentContext.put(ConfigModelConstant.PROPERTY_DICTIONARY_KEY_DOT + recipeName + "." + dictionaryName,
\r
97 ResourceDefinition resourceDefinition = new ResourceDefinition();
\r
98 resourceDefinition.setName(dictionaryName);
\r
100 String value = (String) ResourceAssignmentUtils.getDictionaryKeyValue(componentContext, resourceDefinition);
\r
101 assertTrue("value1".equals(value));
\r
105 public void testGetTemplateKeyValue() {
\r
106 String recipeName = "recipe";
\r
107 String templateKeyName = "templateKey";
\r
108 Map<String, Object> componentContext = new HashMap<String, Object>();
\r
109 componentContext.put(ConfigModelConstant.PROPERTY_ACTION_NAME, recipeName);
\r
110 componentContext.put(ConfigModelConstant.PROPERTY_RECIPE_KEY_DOT + recipeName + "." + templateKeyName,
\r
112 ResourceAssignment resourceAssignment = new ResourceAssignment();
\r
113 resourceAssignment.setName(templateKeyName);
\r
115 String value = (String) ResourceAssignmentUtils.getTemplateKeyValue(componentContext, resourceAssignment);
\r
116 assertTrue("value1".equals(value));
\r
120 public void testSetResourceDataValue() throws Exception {
\r
121 String recipeName = "recipe";
\r
122 Map<String, Object> componentContext = new HashMap<String, Object>();
\r
123 componentContext.put(ConfigModelConstant.PROPERTY_ACTION_NAME, recipeName);
\r
125 ResourceAssignment resourceAssignment = createResourceAssignment("name1", ValidTypes.DATA_TYPE_STRING, null);
\r
126 Object value = "value";
\r
127 ResourceAssignmentUtils.setResourceDataValue(componentContext, resourceAssignment, value);
\r
128 assertTrue(value.equals(resourceAssignment.getProperty().getValue()));
\r
130 resourceAssignment = createResourceAssignment("name1", ValidTypes.DATA_TYPE_INTEGER, null);
\r
132 ResourceAssignmentUtils.setResourceDataValue(componentContext, resourceAssignment, value);
\r
133 assertTrue((int) resourceAssignment.getProperty().getValue() == 1);
\r
135 resourceAssignment = createResourceAssignment("name1", ValidTypes.DATA_TYPE_BOOLEAN, null);
\r
137 ResourceAssignmentUtils.setResourceDataValue(componentContext, resourceAssignment, value);
\r
138 assertTrue((boolean) resourceAssignment.getProperty().getValue());
\r
140 resourceAssignment = createResourceAssignment("name1", ValidTypes.DATA_TYPE_FLOAT, null);
\r
142 ResourceAssignmentUtils.setResourceDataValue(componentContext, resourceAssignment, value);
\r
143 assertTrue((float) resourceAssignment.getProperty().getValue() == 1.1f);
\r
147 public void testSetFailedResourceDataValue() throws Exception {
\r
148 ResourceAssignment resourceAssignment = createResourceAssignment("name1", ValidTypes.DATA_TYPE_STRING, "value");
\r
149 String message = "message";
\r
150 ResourceAssignmentUtils.setFailedResourceDataValue(null, resourceAssignment, message);
\r
152 assertTrue(message.equals(resourceAssignment.getMessage()));
\r
153 assertTrue(ConfigModelConstant.STATUS_FAILURE.equals(resourceAssignment.getStatus()));
\r
156 @Test(expected = ConfigModelException.class)
\r
157 public void testAssertTemplateKeyValueNotNull() throws Exception {
\r
158 Map<String, Object> componentContext = null;
\r
159 ResourceAssignment resourceAssignment = createResourceAssignment("name1", ValidTypes.DATA_TYPE_STRING, "value");
\r
160 ResourceAssignmentUtils.assertTemplateKeyValueNotNull(componentContext, resourceAssignment);
\r
164 public void testGenerateResourceDataForAssignments() throws Exception {
\r
165 List<ResourceAssignment> assignments = new ArrayList<ResourceAssignment>();
\r
166 assignments.add(createResourceAssignment("name1", ValidTypes.DATA_TYPE_STRING, "string"));
\r
167 assignments.add(createResourceAssignment("name2", ValidTypes.DATA_TYPE_BOOLEAN, true));
\r
168 assignments.add(createResourceAssignment("name3", ValidTypes.DATA_TYPE_INTEGER, 1));
\r
169 assignments.add(createResourceAssignment("name4", ValidTypes.DATA_TYPE_FLOAT, 1.1f));
\r
170 assignments.add(createResourceAssignment("name5", ValidTypes.DATA_TYPE_TIMESTAMP, "1523908097735"));
\r
171 assignments.add(createResourceAssignment("name6", "", new HashMap<String, String>()));
\r
172 ResourceAssignmentUtils.generateResourceDataForAssignments(assignments);
\r
175 public void testResourceAssignmentForNullEmptyValues() throws Exception {
\r
177 ObjectMapper mapper = new ObjectMapper();
\r
178 JsonNode raContent =
\r
179 mapper.readTree(new File("src/test/resources/service_templates/ra-content-with-mising-value.json"));
\r
181 List<ResourceAssignment> assignments =
\r
182 mapper.readValue(raContent.toString(), new TypeReference<List<ResourceAssignment>>() {});
\r
184 ResourceAssignmentUtils.generateResourceDataForAssignments(assignments);
\r
187 private ResourceAssignment createResourceAssignment(String name, String dataType, Object value) {
\r
188 PropertyDefinition property = new PropertyDefinition();
\r
189 property.setType(dataType);
\r
190 property.setValue(value);
\r
191 property.setRequired(true);
\r
192 ResourceAssignment ra = new ResourceAssignment();
\r
194 ra.setProperty(property);
\r