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.features.model;
\r
20 import java.util.Arrays;
\r
21 import java.util.HashMap;
\r
22 import org.junit.Assert;
\r
23 import org.junit.Test;
\r
24 import org.onap.ccsdk.features.model.ValidTypes;
\r
25 import org.onap.ccsdk.features.model.data.PropertyDefinition;
\r
26 import org.onap.ccsdk.features.model.data.ResourceAssignment;
\r
27 import org.onap.ccsdk.features.model.data.dict.ResourceDefinition;
\r
28 import org.onap.ccsdk.features.model.data.dict.SourcesDefinition;
\r
29 import org.onap.ccsdk.features.model.data.dict.SourcesProperties;
\r
30 import org.onap.ccsdk.features.model.utils.ResourceDictionaryUtils;
\r
31 import com.att.eelf.configuration.EELFLogger;
\r
32 import com.att.eelf.configuration.EELFManager;
\r
34 public class ResourceDictionaryUtilsTest {
\r
35 private static EELFLogger logger = EELFManager.getInstance().getLogger(ResourceDictionaryUtilsTest.class);
\r
38 public void validateSingleInputSource() {
\r
40 logger.info(" **************** Validating validateSingleInputSource *****************");
\r
41 ResourceAssignment resourceAssignment = new ResourceAssignment();
\r
42 resourceAssignment.setName("test-input-key");
\r
44 PropertyDefinition propertyDefinition = new PropertyDefinition();
\r
45 propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);
\r
47 SourcesProperties sourcesProp = new SourcesProperties();
\r
48 sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));
\r
50 SourcesDefinition sourceDef = new SourcesDefinition();
\r
51 sourceDef.setProperties(sourcesProp);
\r
53 HashMap<String, SourcesDefinition> sources = new HashMap<>();
\r
54 sources.put("input", sourceDef);
\r
56 ResourceDefinition resourceDefinition = new ResourceDefinition();
\r
57 resourceDefinition.setProperty(propertyDefinition);
\r
58 resourceDefinition.setSources(sources);
\r
60 ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);
\r
62 Assert.assertNotNull("Resource assignment input sourceName is missing ",
\r
63 resourceAssignment.getDictionarySource());
\r
64 Assert.assertNotNull("Resource assignment input sourceName property is missing ",
\r
65 resourceAssignment.getProperty());
\r
66 Assert.assertNotNull("Resource assignment input sourceName property type is missing ",
\r
67 resourceAssignment.getProperty().getType());
\r
69 } catch (Exception e) {
\r
70 e.printStackTrace();
\r
75 public void validateSingleDbSource() {
\r
77 logger.info(" **************** Validating validateSingleDbSource *****************");
\r
78 ResourceAssignment resourceAssignment = new ResourceAssignment();
\r
79 resourceAssignment.setName("test-db-key");
\r
81 PropertyDefinition propertyDefinition = new PropertyDefinition();
\r
82 propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);
\r
84 SourcesProperties sourcesProp = new SourcesProperties();
\r
85 sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));
\r
87 SourcesDefinition sourceDef = new SourcesDefinition();
\r
88 sourceDef.setProperties(sourcesProp);
\r
90 HashMap<String, SourcesDefinition> sources = new HashMap<>();
\r
91 sources.put("db", sourceDef);
\r
93 ResourceDefinition resourceDefinition = new ResourceDefinition();
\r
94 resourceDefinition.setProperty(propertyDefinition);
\r
95 resourceDefinition.setSources(sources);
\r
97 ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);
\r
98 Assert.assertNotNull("Resource assignment db sourceName sourceName is missing ",
\r
99 resourceAssignment.getDictionarySource());
\r
100 Assert.assertNotNull("Resource assignment db sourceName sourceName property is missing ",
\r
101 resourceAssignment.getProperty());
\r
102 Assert.assertNotNull("Resource assignment db sourceName sourceName property type is missing ",
\r
103 resourceAssignment.getProperty().getType());
\r
105 Assert.assertNotNull("Resource assignment db dependecy is missing ", resourceAssignment.getDependencies());
\r
106 Assert.assertEquals("Resource assignment db dependecy count mismatch ", 2,
\r
107 resourceAssignment.getDependencies().size());
\r
109 } catch (Exception e) {
\r
110 e.printStackTrace();
\r
115 public void validateMultiSource() {
\r
117 logger.info(" **************** Validating validateMultiSource *****************");
\r
118 ResourceAssignment resourceAssignment = new ResourceAssignment();
\r
119 resourceAssignment.setName("test-multi-key");
\r
121 PropertyDefinition propertyDefinition = new PropertyDefinition();
\r
122 propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);
\r
124 SourcesProperties sourcesProp = new SourcesProperties();
\r
125 sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));
\r
127 SourcesDefinition sourceDef = new SourcesDefinition();
\r
128 sourceDef.setProperties(sourcesProp);
\r
130 HashMap<String, SourcesDefinition> sources = new HashMap<>();
\r
131 sources.put("input", sourceDef);
\r
132 sources.put("mdsal", sourceDef);
\r
134 ResourceDefinition resourceDefinition = new ResourceDefinition();
\r
135 resourceDefinition.setProperty(propertyDefinition);
\r
136 resourceDefinition.setSources(sources);
\r
138 ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);
\r
139 Assert.assertNotNull("Resource assignment db sourceName sourceName property is missing ",
\r
140 resourceAssignment.getProperty());
\r
141 Assert.assertNotNull("Resource assignment db sourceName sourceName property type is missing ",
\r
142 resourceAssignment.getProperty().getType());
\r
143 Assert.assertNull("Resource assignment multi sourceName sourceName definition is present ",
\r
144 resourceAssignment.getDictionarySource());
\r
145 Assert.assertNull("Resource assignment multi sourceName dependecy is present ",
\r
146 resourceAssignment.getDependencies());
\r
148 } catch (Exception e) {
\r
149 e.printStackTrace();
\r
154 public void testSourceDefault() {
\r
155 logger.info(" **************** Validating testSourceDefault *****************");
\r
156 ResourceAssignment resourceAssignment = new ResourceAssignment();
\r
157 resourceAssignment.setName("test-input-key");
\r
159 PropertyDefinition propertyDefinition = new PropertyDefinition();
\r
160 propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);
\r
162 SourcesProperties sourcesProp = new SourcesProperties();
\r
163 sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));
\r
165 SourcesDefinition sourceDef = new SourcesDefinition();
\r
166 sourceDef.setProperties(sourcesProp);
\r
168 HashMap<String, SourcesDefinition> sources = new HashMap<>();
\r
169 sources.put("default", sourceDef);
\r
171 ResourceDefinition resourceDefinition = new ResourceDefinition();
\r
172 resourceDefinition.setProperty(propertyDefinition);
\r
173 resourceDefinition.setSources(sources);
\r
175 ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);
\r
177 Assert.assertNotNull("Resource assignment default sourceName is missing ",
\r
178 resourceAssignment.getDictionarySource());
\r
179 Assert.assertNotNull("Resource assignment default sourceName property is missing ",
\r
180 resourceAssignment.getProperty());
\r
181 Assert.assertNotNull("Resource assignment default sourceName property type is missing ",
\r
182 resourceAssignment.getProperty().getType());
\r
186 public void testSourceMdsal() {
\r
187 logger.info(" **************** Validating testSourceMdsal *****************");
\r
188 ResourceAssignment resourceAssignment = new ResourceAssignment();
\r
189 resourceAssignment.setName("test-input-key");
\r
191 PropertyDefinition propertyDefinition = new PropertyDefinition();
\r
192 propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);
\r
194 SourcesProperties sourcesProp = new SourcesProperties();
\r
195 sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));
\r
197 SourcesDefinition sourceDef = new SourcesDefinition();
\r
198 sourceDef.setProperties(sourcesProp);
\r
200 HashMap<String, SourcesDefinition> sources = new HashMap<>();
\r
201 sources.put("mdsal", sourceDef);
\r
203 ResourceDefinition resourceDefinition = new ResourceDefinition();
\r
204 resourceDefinition.setProperty(propertyDefinition);
\r
205 resourceDefinition.setSources(sources);
\r
207 ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);
\r
209 Assert.assertNotNull("Resource assignment mdsal sourceName is missing ",
\r
210 resourceAssignment.getDictionarySource());
\r
211 Assert.assertNotNull("Resource assignment mdsal sourceName property is missing ",
\r
212 resourceAssignment.getProperty());
\r
213 Assert.assertNotNull("Resource assignment mdsal sourceName property type is missing ",
\r
214 resourceAssignment.getProperty().getType());
\r