9965f61c69d6f1cc4a702f6086b8ef7d564790cb
[ccsdk/features.git] /
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  * Modifications Copyright © 2018 IBM.\r
4  * \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
8  * \r
9  * http://www.apache.org/licenses/LICENSE-2.0\r
10  * \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
16  */\r
17 \r
18 package org.onap.ccsdk.features.model;\r
19 \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
33 \r
34 public class ResourceDictionaryUtilsTest {\r
35     private static EELFLogger logger = EELFManager.getInstance().getLogger(ResourceDictionaryUtilsTest.class);\r
36 \r
37     @Test\r
38     public void validateSingleInputSource() {\r
39         try {\r
40             logger.info(" **************** Validating validateSingleInputSource *****************");\r
41             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
42             resourceAssignment.setName("test-input-key");\r
43 \r
44             PropertyDefinition propertyDefinition = new PropertyDefinition();\r
45             propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
46 \r
47             SourcesProperties sourcesProp = new SourcesProperties();\r
48             sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
49 \r
50             SourcesDefinition sourceDef = new SourcesDefinition();\r
51             sourceDef.setProperties(sourcesProp);\r
52 \r
53             HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
54             sources.put("input", sourceDef);\r
55 \r
56             ResourceDefinition resourceDefinition = new ResourceDefinition();\r
57             resourceDefinition.setProperty(propertyDefinition);\r
58             resourceDefinition.setSources(sources);\r
59 \r
60             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);\r
61 \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
68 \r
69         } catch (Exception e) {\r
70             e.printStackTrace();\r
71         }\r
72     }\r
73 \r
74     @Test\r
75     public void validateSingleDbSource() {\r
76         try {\r
77             logger.info(" **************** Validating validateSingleDbSource *****************");\r
78             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
79             resourceAssignment.setName("test-db-key");\r
80 \r
81             PropertyDefinition propertyDefinition = new PropertyDefinition();\r
82             propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
83 \r
84             SourcesProperties sourcesProp = new SourcesProperties();\r
85             sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
86 \r
87             SourcesDefinition sourceDef = new SourcesDefinition();\r
88             sourceDef.setProperties(sourcesProp);\r
89 \r
90             HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
91             sources.put("db", sourceDef);\r
92 \r
93             ResourceDefinition resourceDefinition = new ResourceDefinition();\r
94             resourceDefinition.setProperty(propertyDefinition);\r
95             resourceDefinition.setSources(sources);\r
96 \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
104 \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
108 \r
109         } catch (Exception e) {\r
110             e.printStackTrace();\r
111         }\r
112     }\r
113 \r
114     @Test\r
115     public void validateMultiSource() {\r
116         try {\r
117             logger.info(" **************** Validating validateMultiSource *****************");\r
118             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
119             resourceAssignment.setName("test-multi-key");\r
120 \r
121             PropertyDefinition propertyDefinition = new PropertyDefinition();\r
122             propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
123 \r
124             SourcesProperties sourcesProp = new SourcesProperties();\r
125             sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
126 \r
127             SourcesDefinition sourceDef = new SourcesDefinition();\r
128             sourceDef.setProperties(sourcesProp);\r
129 \r
130             HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
131             sources.put("input", sourceDef);\r
132             sources.put("mdsal", sourceDef);\r
133 \r
134             ResourceDefinition resourceDefinition = new ResourceDefinition();\r
135             resourceDefinition.setProperty(propertyDefinition);\r
136             resourceDefinition.setSources(sources);\r
137 \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
147 \r
148         } catch (Exception e) {\r
149             e.printStackTrace();\r
150         }\r
151     }\r
152 \r
153     @Test\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
158 \r
159         PropertyDefinition propertyDefinition = new PropertyDefinition();\r
160         propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
161 \r
162         SourcesProperties sourcesProp = new SourcesProperties();\r
163         sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
164 \r
165         SourcesDefinition sourceDef = new SourcesDefinition();\r
166         sourceDef.setProperties(sourcesProp);\r
167 \r
168         HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
169         sources.put("default", sourceDef);\r
170 \r
171         ResourceDefinition resourceDefinition = new ResourceDefinition();\r
172         resourceDefinition.setProperty(propertyDefinition);\r
173         resourceDefinition.setSources(sources);\r
174 \r
175         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);\r
176 \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
183     }\r
184 \r
185     @Test\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
190 \r
191         PropertyDefinition propertyDefinition = new PropertyDefinition();\r
192         propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
193 \r
194         SourcesProperties sourcesProp = new SourcesProperties();\r
195         sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
196 \r
197         SourcesDefinition sourceDef = new SourcesDefinition();\r
198         sourceDef.setProperties(sourcesProp);\r
199 \r
200         HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
201         sources.put("mdsal", sourceDef);\r
202 \r
203         ResourceDefinition resourceDefinition = new ResourceDefinition();\r
204         resourceDefinition.setProperty(propertyDefinition);\r
205         resourceDefinition.setSources(sources);\r
206 \r
207         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);\r
208 \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
215     }\r
216 \r
217 }\r