b6ac103ee985635d11fc5a531e15ec0d7689a07a
[ccsdk/cds.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.apps.controllerblueprints.resource.dict.util;\r
19 \r
20 \r
21 import org.junit.Assert;\r
22 import org.junit.Test;\r
23 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants;\r
24 import org.onap.ccsdk.apps.controllerblueprints.core.data.PropertyDefinition;\r
25 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;\r
26 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceDictionaryConstants;\r
27 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.data.*;\r
28 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.utils.ResourceDictionaryUtils;\r
29 import org.slf4j.Logger;\r
30 import org.slf4j.LoggerFactory;\r
31 \r
32 import java.util.Arrays;\r
33 import java.util.HashMap;\r
34 import java.util.Map;\r
35 \r
36 public class ResourceDictionaryUtilsTest {\r
37     private static final Logger log = LoggerFactory.getLogger(ResourceDictionaryUtilsTest.class);\r
38 \r
39     @Test\r
40     public void validateSingleInputSource() {\r
41         try {\r
42             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
43             resourceAssignment.setName("test-input-key");\r
44             PropertyDefinition propertyDefinition = new PropertyDefinition();\r
45             propertyDefinition.setType("string");\r
46             resourceAssignment.setProperty(propertyDefinition);\r
47             DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
48             dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
49 \r
50             Map<String, ResourceSource> source = new HashMap<>();\r
51             SourceInput sourceInput = new SourceInput();\r
52             source.put(ResourceDictionaryConstants.SOURCE_INPUT, sourceInput);\r
53             dictionaryDefinition.setSource(source);\r
54 \r
55             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
56             Assert.assertNotNull("Resource assignment input source is missing ",\r
57                     resourceAssignment.getDictionarySource());\r
58             Assert.assertNotNull("Resource assignment input source property is missing ",\r
59                     resourceAssignment.getProperty());\r
60             Assert.assertNotNull("Resource assignment input source property type is missing ",\r
61                     resourceAssignment.getProperty().getType());\r
62 \r
63         } catch (Exception e) {\r
64             e.printStackTrace();\r
65         }\r
66     }\r
67 \r
68     @Test\r
69     public void validateSingleDbSource() {\r
70         try {\r
71             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
72             resourceAssignment.setName("test-db-key");\r
73             PropertyDefinition propertyDefinition = new PropertyDefinition();\r
74             propertyDefinition.setType("string");\r
75             resourceAssignment.setProperty(propertyDefinition);\r
76 \r
77             DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
78             dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
79 \r
80             Map<String, ResourceSource> source = new HashMap<>();\r
81             SourceDb sourceDb = new SourceDb();\r
82             sourceDb.setBase("sdnc_connection");\r
83             source.put(ResourceDictionaryConstants.SOURCE_DB, sourceDb);\r
84             dictionaryDefinition.setSource(source);\r
85 \r
86             Map<String, DictionaryDependency> dependency = new HashMap<>();\r
87             DictionaryDependency dependencyDb = new DictionaryDependency();\r
88             dependencyDb.setNames(Arrays.asList("vnf-id", "vnf-name"));\r
89             dependency.put(ResourceDictionaryConstants.SOURCE_DB, dependencyDb);\r
90             dictionaryDefinition.setDependency(dependency);\r
91 \r
92             DecryptionRule decryptionRule = new DecryptionRule();\r
93             decryptionRule.setDecryptType("sample Type");\r
94             decryptionRule.setPath("$.");\r
95             decryptionRule.setRule("Sample Rule");\r
96             decryptionRule.setSources(Arrays.asList("vnf-id"));\r
97             dictionaryDefinition.setDecryptionRules(Arrays.asList(decryptionRule));\r
98 \r
99             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
100             Assert.assertNotNull("Resource assignment db source source is missing ",\r
101                     resourceAssignment.getDictionarySource());\r
102             Assert.assertNotNull("Resource assignment db source source property is missing ",\r
103                     resourceAssignment.getProperty());\r
104             Assert.assertNotNull("Resource assignment db source source property type is missing ",\r
105                     resourceAssignment.getProperty().getType());\r
106 \r
107             Assert.assertNotNull("Resource assignment db dependecy is missing ", resourceAssignment.getDependencies());\r
108             Assert.assertEquals("Resource assignment db dependecy count mismatch ", 2,\r
109                     resourceAssignment.getDependencies().size());\r
110 \r
111         } catch (Exception e) {\r
112             e.printStackTrace();\r
113         }\r
114     }\r
115 \r
116     @Test\r
117     public void testSourceDefault() {\r
118         ResourceAssignment resourceAssignment = new ResourceAssignment();\r
119         resourceAssignment.setName("test-input-key");\r
120         PropertyDefinition propertyDefinition = new PropertyDefinition();\r
121         propertyDefinition.setType("string");\r
122         resourceAssignment.setProperty(propertyDefinition);\r
123 \r
124         DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
125         dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
126 \r
127         Map<String, ResourceSource> source = new HashMap<>();\r
128         SourceDefault sourceDefault = new SourceDefault();\r
129         source.put(ResourceDictionaryConstants.SOURCE_DEFAULT, sourceDefault);\r
130         dictionaryDefinition.setSource(source);\r
131 \r
132         Map<String, DictionaryDependency> dependency = new HashMap<>();\r
133         DictionaryDependency dependencyDefault = new DictionaryDependency();\r
134         dependencyDefault.setNames(Arrays.asList(new String[]{"vnf-id", "vnf-name"}));\r
135         dependency.put(ResourceDictionaryConstants.SOURCE_DEFAULT, dependencyDefault);\r
136         dictionaryDefinition.setDependency(dependency);\r
137 \r
138         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
139 \r
140         Assert.assertNotNull("Resource assignment default source is missing ",\r
141                 resourceAssignment.getDictionarySource());\r
142         Assert.assertNotNull("Resource assignment default source property is missing ",\r
143                 resourceAssignment.getProperty());\r
144         Assert.assertNotNull("Resource assignment default source property type is missing ",\r
145                 resourceAssignment.getProperty().getType());\r
146     }\r
147 \r
148     @Test\r
149     public void testSourceMdsal() {\r
150         ResourceAssignment resourceAssignment = new ResourceAssignment();\r
151         resourceAssignment.setName("test-input-key");\r
152         PropertyDefinition propertyDefinition = new PropertyDefinition();\r
153         propertyDefinition.setType("string");\r
154         resourceAssignment.setProperty(propertyDefinition);\r
155 \r
156         DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
157         dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
158 \r
159         Map<String, ResourceSource> source = new HashMap<>();\r
160         SourceMdsal sourceMdsal = new SourceMdsal();\r
161         source.put(ResourceDictionaryConstants.SOURCE_MDSAL,sourceMdsal);\r
162         dictionaryDefinition.setSource(source);\r
163 \r
164         Map<String, DictionaryDependency> dependency = new HashMap<>();\r
165         DictionaryDependency dependencyMdsal = new DictionaryDependency();\r
166         dependencyMdsal.setNames(Arrays.asList(new String[]{"vnf-id", "vnf-name"}));\r
167         dependency.put(ResourceDictionaryConstants.SOURCE_MDSAL, dependencyMdsal);\r
168         dictionaryDefinition.setDependency(dependency);\r
169 \r
170         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
171 \r
172         Assert.assertNotNull("Resource assignment mdsal source is missing ", resourceAssignment.getDictionarySource());\r
173         Assert.assertNotNull("Resource assignment mdsal source property is missing ", resourceAssignment.getProperty());\r
174         Assert.assertNotNull("Resource assignment mdsal source property type is missing ",\r
175                 resourceAssignment.getProperty().getType());\r
176     }\r
177 \r
178 }\r