22b01c4a83a93244cfec724bb94c01228e61ee66
[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 com.fasterxml.jackson.databind.JsonNode;\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.ConfigModelConstant;\r
25 import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;\r
26 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;\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             log.info(" **************** Validating validateSingleSource *****************");\r
43             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
44             resourceAssignment.setName("test-input-key");\r
45             DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
46             dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
47 \r
48             Map<String, JsonNode> source = new HashMap<>();\r
49             SourceInput sourceInput = new SourceInput();\r
50             source.put(ConfigModelConstant.SOURCE_INPUT, JacksonUtils.jsonNodeFromObject(sourceInput));\r
51             dictionaryDefinition.setSource(source);\r
52 \r
53             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
54             Assert.assertNotNull("Resource assignment input source is missing ",\r
55                     resourceAssignment.getDictionarySource());\r
56             Assert.assertNotNull("Resource assignment input source property is missing ",\r
57                     resourceAssignment.getProperty());\r
58             Assert.assertNotNull("Resource assignment input source property type is missing ",\r
59                     resourceAssignment.getProperty().getType());\r
60 \r
61         } catch (Exception e) {\r
62             e.printStackTrace();\r
63         }\r
64     }\r
65 \r
66     @Test\r
67     public void validateSingleDbSource() {\r
68         try {\r
69             log.info(" **************** Validating validateSingleSource *****************");\r
70             ResourceAssignment resourceAssignment = new ResourceAssignment();\r
71             resourceAssignment.setName("test-db-key");\r
72             DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
73             dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
74 \r
75             Map<String, JsonNode> source = new HashMap<>();\r
76             SourceDb sourceDb = new SourceDb();\r
77             source.put(ConfigModelConstant.SOURCE_DB, JacksonUtils.jsonNodeFromObject(sourceDb));\r
78             dictionaryDefinition.setSource(source);\r
79 \r
80             Map<String, DictionaryDependency> dependency = new HashMap<>();\r
81             DictionaryDependency dependencyDb = new DictionaryDependency();\r
82             dependencyDb.setNames(Arrays.asList("vnf-id", "vnf-name"));\r
83             dependency.put(ConfigModelConstant.SOURCE_DB, dependencyDb);\r
84             dictionaryDefinition.setDependency(dependency);\r
85 \r
86             DecryptionRule decryptionRule = new DecryptionRule();\r
87             decryptionRule.setDecryptType("sample Type");\r
88             decryptionRule.setPath("$.");\r
89             decryptionRule.setRule("Sample Rule");\r
90             decryptionRule.setSources(Arrays.asList("vnf-id"));\r
91             dictionaryDefinition.setDecryptionRules(Arrays.asList(decryptionRule));\r
92 \r
93             ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
94             Assert.assertNotNull("Resource assignment db source source is missing ",\r
95                     resourceAssignment.getDictionarySource());\r
96             Assert.assertNotNull("Resource assignment db source source property is missing ",\r
97                     resourceAssignment.getProperty());\r
98             Assert.assertNotNull("Resource assignment db source source property type is missing ",\r
99                     resourceAssignment.getProperty().getType());\r
100 \r
101             Assert.assertNotNull("Resource assignment db dependecy is missing ", resourceAssignment.getDependencies());\r
102             Assert.assertEquals("Resource assignment db dependecy count mismatch ", 2,\r
103                     resourceAssignment.getDependencies().size());\r
104 \r
105         } catch (Exception e) {\r
106             e.printStackTrace();\r
107         }\r
108     }\r
109 \r
110     @Test\r
111     public void testSourceDefault() {\r
112         ResourceAssignment resourceAssignment = new ResourceAssignment();\r
113         resourceAssignment.setName("test-input-key");\r
114 \r
115         DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
116         dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
117 \r
118         Map<String, JsonNode> source = new HashMap<>();\r
119         SourceDefault sourceDefault = new SourceDefault();\r
120         source.put(ConfigModelConstant.SOURCE_DEFAULT, JacksonUtils.jsonNodeFromObject(sourceDefault));\r
121         dictionaryDefinition.setSource(source);\r
122 \r
123         Map<String, DictionaryDependency> dependency = new HashMap<>();\r
124         DictionaryDependency dependencyDefault = new DictionaryDependency();\r
125         dependencyDefault.setNames(Arrays.asList(new String[]{"vnf-id", "vnf-name"}));\r
126         dependency.put(ConfigModelConstant.SOURCE_DEFAULT, dependencyDefault);\r
127         dictionaryDefinition.setDependency(dependency);\r
128 \r
129         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
130 \r
131         Assert.assertNotNull("Resource assignment default source is missing ",\r
132                 resourceAssignment.getDictionarySource());\r
133         Assert.assertNotNull("Resource assignment default source property is missing ",\r
134                 resourceAssignment.getProperty());\r
135         Assert.assertNotNull("Resource assignment default source property type is missing ",\r
136                 resourceAssignment.getProperty().getType());\r
137     }\r
138 \r
139     @Test\r
140     public void testSourceMdsal() {\r
141         ResourceAssignment resourceAssignment = new ResourceAssignment();\r
142         resourceAssignment.setName("test-input-key");\r
143         DictionaryDefinition dictionaryDefinition = new DictionaryDefinition();\r
144         dictionaryDefinition.setDataType(BluePrintConstants.DATA_TYPE_STRING);\r
145 \r
146         Map<String, JsonNode> source = new HashMap<>();\r
147         SourceMdsal sourceMdsal = new SourceMdsal();\r
148         source.put(ConfigModelConstant.SOURCE_MDSAL, JacksonUtils.jsonNodeFromObject(sourceMdsal));\r
149         dictionaryDefinition.setSource(source);\r
150 \r
151         Map<String, DictionaryDependency> dependency = new HashMap<>();\r
152         DictionaryDependency dependencyMdsal = new DictionaryDependency();\r
153         dependencyMdsal.setNames(Arrays.asList(new String[]{"vnf-id", "vnf-name"}));\r
154         dependency.put(ConfigModelConstant.SOURCE_MDSAL, dependencyMdsal);\r
155         dictionaryDefinition.setDependency(dependency);\r
156 \r
157         ResourceDictionaryUtils.populateSourceMapping(resourceAssignment, dictionaryDefinition);\r
158 \r
159         Assert.assertNotNull("Resource assignment mdsal source is missing ", resourceAssignment.getDictionarySource());\r
160         Assert.assertNotNull("Resource assignment mdsal source property is missing ", resourceAssignment.getProperty());\r
161         Assert.assertNotNull("Resource assignment mdsal source property type is missing ",\r
162                 resourceAssignment.getProperty().getType());\r
163     }\r
164 \r
165 }\r