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