Fix OSGi wiring issues
[ccsdk/features.git] / blueprints-processor / plugin / model-provider / src / test / java / org / onap / ccsdk / config / model / ResourceDictionaryUtilsTest.java
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.config.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.config.model.data.PropertyDefinition;\r
25 import org.onap.ccsdk.config.model.data.ResourceAssignment;\r
26 import org.onap.ccsdk.config.model.data.dict.ResourceDefinition;\r
27 import org.onap.ccsdk.config.model.data.dict.SourcesDefinition;\r
28 import org.onap.ccsdk.config.model.data.dict.SourcesProperties;\r
29 import org.onap.ccsdk.config.model.utils.ResourceDictionaryUtils;\r
30 import com.att.eelf.configuration.EELFLogger;\r
31 import com.att.eelf.configuration.EELFManager;\r
32 \r
33 public class ResourceDictionaryUtilsTest {\r
34     private static EELFLogger logger = EELFManager.getInstance().getLogger(ResourceDictionaryUtilsTest.class);\r
35 \r
36     @Test\r
37     public void validateSingleInputSource() {\r
38         try {\r
39             logger.info(" **************** Validating validateSingleInputSource *****************");\r
40             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
41             resourceAssignment.setName("test-input-key");\r
42 \r
43             PropertyDefinition propertyDefinition = new PropertyDefinition();\r
44             propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
45 \r
46             SourcesProperties sourcesProp = new SourcesProperties();\r
47             sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
48 \r
49             SourcesDefinition sourceDef = new SourcesDefinition();\r
50             sourceDef.setProperties(sourcesProp);\r
51 \r
52             HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
53             sources.put("input", sourceDef);\r
54 \r
55             ResourceDefinition resourceDefinition = new ResourceDefinition();\r
56             resourceDefinition.setProperty(propertyDefinition);\r
57             resourceDefinition.setSources(sources);\r
58 \r
59             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);\r
60 \r
61             Assert.assertNotNull("Resource assignment input sourceName is missing ",\r
62                     resourceAssignment.getDictionarySource());\r
63             Assert.assertNotNull("Resource assignment input sourceName property is missing ",\r
64                     resourceAssignment.getProperty());\r
65             Assert.assertNotNull("Resource assignment input sourceName property type is missing ",\r
66                     resourceAssignment.getProperty().getType());\r
67 \r
68         } catch (Exception e) {\r
69             e.printStackTrace();\r
70         }\r
71     }\r
72 \r
73     @Test\r
74     public void validateSingleDbSource() {\r
75         try {\r
76             logger.info(" **************** Validating validateSingleDbSource *****************");\r
77             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
78             resourceAssignment.setName("test-db-key");\r
79 \r
80             PropertyDefinition propertyDefinition = new PropertyDefinition();\r
81             propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
82 \r
83             SourcesProperties sourcesProp = new SourcesProperties();\r
84             sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
85 \r
86             SourcesDefinition sourceDef = new SourcesDefinition();\r
87             sourceDef.setProperties(sourcesProp);\r
88 \r
89             HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
90             sources.put("db", sourceDef);\r
91 \r
92             ResourceDefinition resourceDefinition = new ResourceDefinition();\r
93             resourceDefinition.setProperty(propertyDefinition);\r
94             resourceDefinition.setSources(sources);\r
95 \r
96             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);\r
97             Assert.assertNotNull("Resource assignment db sourceName sourceName is missing ",\r
98                     resourceAssignment.getDictionarySource());\r
99             Assert.assertNotNull("Resource assignment db sourceName sourceName property is missing ",\r
100                     resourceAssignment.getProperty());\r
101             Assert.assertNotNull("Resource assignment db sourceName sourceName property type is missing ",\r
102                     resourceAssignment.getProperty().getType());\r
103 \r
104             Assert.assertNotNull("Resource assignment db dependecy is missing ", resourceAssignment.getDependencies());\r
105             Assert.assertEquals("Resource assignment db dependecy count mismatch ", 2,\r
106                     resourceAssignment.getDependencies().size());\r
107 \r
108         } catch (Exception e) {\r
109             e.printStackTrace();\r
110         }\r
111     }\r
112 \r
113     @Test\r
114     public void validateMultiSource() {\r
115         try {\r
116             logger.info(" **************** Validating validateMultiSource *****************");\r
117             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
118             resourceAssignment.setName("test-multi-key");\r
119 \r
120             PropertyDefinition propertyDefinition = new PropertyDefinition();\r
121             propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
122 \r
123             SourcesProperties sourcesProp = new SourcesProperties();\r
124             sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
125 \r
126             SourcesDefinition sourceDef = new SourcesDefinition();\r
127             sourceDef.setProperties(sourcesProp);\r
128 \r
129             HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
130             sources.put("input", sourceDef);\r
131             sources.put("mdsal", sourceDef);\r
132 \r
133             ResourceDefinition resourceDefinition = new ResourceDefinition();\r
134             resourceDefinition.setProperty(propertyDefinition);\r
135             resourceDefinition.setSources(sources);\r
136 \r
137             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);\r
138             Assert.assertNotNull("Resource assignment db sourceName sourceName property is missing ",\r
139                     resourceAssignment.getProperty());\r
140             Assert.assertNotNull("Resource assignment db sourceName sourceName property type is missing ",\r
141                     resourceAssignment.getProperty().getType());\r
142             Assert.assertNull("Resource assignment multi sourceName sourceName definition is present ",\r
143                     resourceAssignment.getDictionarySource());\r
144             Assert.assertNull("Resource assignment  multi sourceName dependecy is present ",\r
145                     resourceAssignment.getDependencies());\r
146 \r
147         } catch (Exception e) {\r
148             e.printStackTrace();\r
149         }\r
150     }\r
151 \r
152     @Test\r
153     public void testSourceDefault() {\r
154         logger.info(" **************** Validating testSourceDefault *****************");\r
155         ResourceAssignment resourceAssignment = new ResourceAssignment();\r
156         resourceAssignment.setName("test-input-key");\r
157 \r
158         PropertyDefinition propertyDefinition = new PropertyDefinition();\r
159         propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
160 \r
161         SourcesProperties sourcesProp = new SourcesProperties();\r
162         sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
163 \r
164         SourcesDefinition sourceDef = new SourcesDefinition();\r
165         sourceDef.setProperties(sourcesProp);\r
166 \r
167         HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
168         sources.put("default", sourceDef);\r
169 \r
170         ResourceDefinition resourceDefinition = new ResourceDefinition();\r
171         resourceDefinition.setProperty(propertyDefinition);\r
172         resourceDefinition.setSources(sources);\r
173 \r
174         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);\r
175 \r
176         Assert.assertNotNull("Resource assignment default sourceName is missing ",\r
177                 resourceAssignment.getDictionarySource());\r
178         Assert.assertNotNull("Resource assignment default sourceName property is missing ",\r
179                 resourceAssignment.getProperty());\r
180         Assert.assertNotNull("Resource assignment default sourceName property type is missing ",\r
181                 resourceAssignment.getProperty().getType());\r
182     }\r
183 \r
184     @Test\r
185     public void testSourceMdsal() {\r
186         logger.info(" **************** Validating testSourceMdsal *****************");\r
187         ResourceAssignment resourceAssignment = new ResourceAssignment();\r
188         resourceAssignment.setName("test-input-key");\r
189 \r
190         PropertyDefinition propertyDefinition = new PropertyDefinition();\r
191         propertyDefinition.setType(ValidTypes.DATA_TYPE_STRING);\r
192 \r
193         SourcesProperties sourcesProp = new SourcesProperties();\r
194         sourcesProp.setDependencies(Arrays.asList(new String[] {"vnf-id", "vnf-name"}));\r
195 \r
196         SourcesDefinition sourceDef = new SourcesDefinition();\r
197         sourceDef.setProperties(sourcesProp);\r
198 \r
199         HashMap<String, SourcesDefinition> sources = new HashMap<>();\r
200         sources.put("mdsal", sourceDef);\r
201 \r
202         ResourceDefinition resourceDefinition = new ResourceDefinition();\r
203         resourceDefinition.setProperty(propertyDefinition);\r
204         resourceDefinition.setSources(sources);\r
205 \r
206         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, resourceDefinition);\r
207 \r
208         Assert.assertNotNull("Resource assignment mdsal sourceName is missing ",\r
209                 resourceAssignment.getDictionarySource());\r
210         Assert.assertNotNull("Resource assignment mdsal sourceName property is missing ",\r
211                 resourceAssignment.getProperty());\r
212         Assert.assertNotNull("Resource assignment mdsal sourceName property type is missing ",\r
213                 resourceAssignment.getProperty().getType());\r
214     }\r
215 \r
216 }\r