0c9a1c5d841005cdfe1e71731d656e2638b3f662
[ccsdk/cds.git] /
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 package org.onap.ccsdk.apps.controllerblueprints.resource.dict.util;\r
18 \r
19 \r
20 import org.junit.Assert;\r
21 import org.junit.Test;\r
22 import org.onap.ccsdk.apps.controllerblueprints.core.BluePrintConstants;\r
23 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;\r
24 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceDictionaryConstants;\r
25 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.data.*;\r
26 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.utils.ResourceDictionaryUtils;\r
27 import org.slf4j.Logger;\r
28 import org.slf4j.LoggerFactory;\r
29 \r
30 import java.util.Arrays;\r
31 import java.util.HashMap;\r
32 import java.util.Map;\r
33 \r
34 public class ResourceDictionaryUtilsTest {\r
35     private static final Logger log = LoggerFactory.getLogger(ResourceDictionaryUtilsTest.class);\r
36 \r
37     @Test\r
38     public void validateSingleInputSource() {\r
39         try {\r
40             log.info(" **************** Validating validateSingleSource *****************");\r
41             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
42             resourceAssignment.setName("test-input-key");\r
43             DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
44             dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
45 \r
46             Map<String, ResourceSource> source = new HashMap<>();\r
47             SourceInput sourceInput = new SourceInput();\r
48             source.put(ResourceDictionaryConstants.SOURCE_INPUT, sourceInput);\r
49             dictionaryDefinition.setSource(source);\r
50 \r
51             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
52             Assert.assertNotNull("Resource assignment input source is missing ",\r
53                     resourceAssignment.getDictionarySource());\r
54             Assert.assertNotNull("Resource assignment input source property is missing ",\r
55                     resourceAssignment.getProperty());\r
56             Assert.assertNotNull("Resource assignment input source property type is missing ",\r
57                     resourceAssignment.getProperty().getType());\r
58 \r
59         } catch (Exception e) {\r
60             e.printStackTrace();\r
61         }\r
62     }\r
63 \r
64     @Test\r
65     public void validateSingleDbSource() {\r
66         try {\r
67             log.info(" **************** Validating validateSingleSource *****************");\r
68             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
69             resourceAssignment.setName("test-db-key");\r
70             DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
71             dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
72 \r
73             Map<String, ResourceSource> source = new HashMap<>();\r
74             SourceDb sourceDb = new SourceDb();\r
75             sourceDb.setBase("sdnc_connection");\r
76             source.put(ResourceDictionaryConstants.SOURCE_DB, sourceDb);\r
77             dictionaryDefinition.setSource(source);\r
78 \r
79             Map<String, DictionaryDependency> dependency = new HashMap<>();\r
80             DictionaryDependency dependencyDb = new DictionaryDependency();\r
81             dependencyDb.setNames(Arrays.asList("vnf-id", "vnf-name"));\r
82             dependency.put(ResourceDictionaryConstants.SOURCE_DB, dependencyDb);\r
83             dictionaryDefinition.setDependency(dependency);\r
84 \r
85             DecryptionRule decryptionRule = new DecryptionRule();\r
86             decryptionRule.setDecryptType("sample Type");\r
87             decryptionRule.setPath("$.");\r
88             decryptionRule.setRule("Sample Rule");\r
89             decryptionRule.setSources(Arrays.asList("vnf-id"));\r
90             dictionaryDefinition.setDecryptionRules(Arrays.asList(decryptionRule));\r
91 \r
92             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
93             Assert.assertNotNull("Resource assignment db source source is missing ",\r
94                     resourceAssignment.getDictionarySource());\r
95             Assert.assertNotNull("Resource assignment db source source property is missing ",\r
96                     resourceAssignment.getProperty());\r
97             Assert.assertNotNull("Resource assignment db source source property type is missing ",\r
98                     resourceAssignment.getProperty().getType());\r
99 \r
100             Assert.assertNotNull("Resource assignment db dependecy is missing ", resourceAssignment.getDependencies());\r
101             Assert.assertEquals("Resource assignment db dependecy count mismatch ", 2,\r
102                     resourceAssignment.getDependencies().size());\r
103 \r
104         } catch (Exception e) {\r
105             e.printStackTrace();\r
106         }\r
107     }\r
108 \r
109     @Test\r
110     public void testSourceDefault() {\r
111         ResourceAssignment resourceAssignment = new ResourceAssignment();\r
112         resourceAssignment.setName("test-input-key");\r
113 \r
114         DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
115         dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
116 \r
117         Map<String, ResourceSource> source = new HashMap<>();\r
118         SourceDefault sourceDefault = new SourceDefault();\r
119         source.put(ResourceDictionaryConstants.SOURCE_DEFAULT, sourceDefault);\r
120         dictionaryDefinition.setSource(source);\r
121 \r
122         Map<String, DictionaryDependency> dependency = new HashMap<>();\r
123         DictionaryDependency dependencyDefault = new DictionaryDependency();\r
124         dependencyDefault.setNames(Arrays.asList(new String[]{"vnf-id", "vnf-name"}));\r
125         dependency.put(ResourceDictionaryConstants.SOURCE_DEFAULT, dependencyDefault);\r
126         dictionaryDefinition.setDependency(dependency);\r
127 \r
128         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
129 \r
130         Assert.assertNotNull("Resource assignment default source is missing ",\r
131                 resourceAssignment.getDictionarySource());\r
132         Assert.assertNotNull("Resource assignment default source property is missing ",\r
133                 resourceAssignment.getProperty());\r
134         Assert.assertNotNull("Resource assignment default source property type is missing ",\r
135                 resourceAssignment.getProperty().getType());\r
136     }\r
137 \r
138     @Test\r
139     public void testSourceMdsal() {\r
140         ResourceAssignment resourceAssignment = new ResourceAssignment();\r
141         resourceAssignment.setName("test-input-key");\r
142         DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
143         dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
144 \r
145         Map<String, ResourceSource> source = new HashMap<>();\r
146         SourceMdsal sourceMdsal = new SourceMdsal();\r
147         source.put(ResourceDictionaryConstants.SOURCE_MDSAL,sourceMdsal);\r
148         dictionaryDefinition.setSource(source);\r
149 \r
150         Map<String, DictionaryDependency> dependency = new HashMap<>();\r
151         DictionaryDependency dependencyMdsal = new DictionaryDependency();\r
152         dependencyMdsal.setNames(Arrays.asList(new String[]{"vnf-id", "vnf-name"}));\r
153         dependency.put(ResourceDictionaryConstants.SOURCE_MDSAL, dependencyMdsal);\r
154         dictionaryDefinition.setDependency(dependency);\r
155 \r
156         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
157 \r
158         Assert.assertNotNull("Resource assignment mdsal source is missing ", resourceAssignment.getDictionarySource());\r
159         Assert.assertNotNull("Resource assignment mdsal source property is missing ", resourceAssignment.getProperty());\r
160         Assert.assertNotNull("Resource assignment mdsal source property type is missing ",\r
161                 resourceAssignment.getProperty().getType());\r
162     }\r
163 \r
164 }\r