Add unit tests to increase the sonar coverage
[aai/model-loader.git] / src / test / java / org / onap / aai / modelloader / config / ModelLoaderConfigTest.java
1 /**\r
2  * ============LICENSE_START=======================================================\r
3  * org.onap.aai\r
4  * ================================================================================\r
5  * Copyright © 2017 AT&T Intellectual Property.\r
6  * Copyright © 2017 Amdocs\r
7  * All rights reserved.\r
8  * ================================================================================\r
9  * Licensed under the Apache License, Version 2.0 (the "License");\r
10  * you may not use this file except in compliance with the License.\r
11  * You may obtain a copy of the License at\r
12  *\r
13  *     http://www.apache.org/licenses/LICENSE-2.0\r
14  *\r
15  * Unless required by applicable law or agreed to in writing, software\r
16  * distributed under the License is distributed on an "AS IS" BASIS,\r
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
18  * See the License for the specific language governing permissions and\r
19  * limitations under the License.\r
20  * ============LICENSE_END=========================================================\r
21  *\r
22  * ECOMP is a trademark and service mark of AT&T Intellectual Property.\r
23  */\r
24 package org.onap.aai.modelloader.config;\r
25 \r
26 import static org.junit.Assert.assertEquals;\r
27 import static org.junit.Assert.assertFalse;\r
28 import static org.junit.Assert.assertTrue;\r
29 \r
30 import java.io.FileInputStream;\r
31 import java.io.IOException;\r
32 import java.util.List;\r
33 import java.util.Properties;\r
34 \r
35 import org.eclipse.jetty.util.security.Password;\r
36 import org.junit.Test;\r
37 import org.onap.aai.modelloader.config.ModelLoaderConfig;\r
38 import org.onap.aai.modelloader.restclient.AaiRestClient;\r
39 import org.openecomp.sdc.utils.ArtifactTypeEnum;\r
40 \r
41 public class ModelLoaderConfigTest {\r
42 \r
43     @Test\r
44     public void testYangModelArtifactType() {\r
45         Properties props = new Properties();\r
46         props.setProperty("ml.distribution.ARTIFACT_TYPES",\r
47             "MODEL_INVENTORY_PROFILE,MODEL_QUERY_SPEC,VNF_CATALOG");\r
48         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
49 \r
50         List<String> types = config.getRelevantArtifactTypes();\r
51 \r
52         System.out.println("ArtifactType: " + types.get(0));\r
53         assertEquals(0,\r
54         types.get(0).compareToIgnoreCase(ArtifactTypeEnum.MODEL_INVENTORY_PROFILE.toString()));\r
55 \r
56         System.out.println("ArtifactType: " + types.get(1));\r
57         assertEquals(0, types.get(1).compareToIgnoreCase(ArtifactTypeEnum.MODEL_QUERY_SPEC.toString()));\r
58 \r
59         System.out.println("ArtifactType: " + types.get(2));\r
60         assertEquals(0, types.get(2).compareToIgnoreCase(ArtifactTypeEnum.VNF_CATALOG.toString()));\r
61 \r
62         assertEquals(3, types.size());\r
63     }\r
64 \r
65     @Test\r
66     public void testDecryptPassword() {\r
67         Properties props = new Properties();\r
68         String testPass = "youshallnotpass";\r
69         String encryptedTestPass = Password.obfuscate(testPass);\r
70 \r
71         System.out.println("Encrypt " + testPass + " ==> " + encryptedTestPass);\r
72 \r
73         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_PASSWORD, encryptedTestPass);\r
74         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
75 \r
76         assertEquals(testPass, config.getPassword());\r
77     }\r
78 \r
79     @Test\r
80     public void testDecryptKeystorePassword() {\r
81         Properties props = new Properties();\r
82         String testPass = "youshallnotpass";\r
83         String encryptedTestPass = Password.obfuscate(testPass);\r
84 \r
85         System.out.println("Encrypt " + testPass + " ==> " + encryptedTestPass);\r
86 \r
87         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_KEYSTORE_PASSWORD, encryptedTestPass);\r
88         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
89 \r
90         assertEquals(testPass, config.getKeyStorePassword());\r
91     }\r
92 \r
93     @Test\r
94     public void testDecryptAAIPassword() {\r
95         Properties props = new Properties();\r
96         String testPassword = "myvoiceismypassword";\r
97         String encryptedTestPassword = Password.obfuscate(testPassword);\r
98 \r
99         props.put(ModelLoaderConfig.PROP_AAI_AUTHENTICATION_PASSWORD, encryptedTestPassword);\r
100         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
101 \r
102         assertEquals(testPassword, config.getAaiAuthenticationPassword());\r
103     }\r
104 \r
105     @Test\r
106     public void testNoAAIAuth() throws IOException {\r
107         Properties props = new Properties();\r
108         props.load(\r
109             new FileInputStream("src/test/resources/model-loader-empty-auth-password.properties"));\r
110 \r
111         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
112         AaiRestClient aaiClient = new AaiRestClient(config);\r
113 \r
114         assertFalse("Empty AAI Password should result in no basic authentication",\r
115         aaiClient.useBasicAuth());\r
116 \r
117         props.load(new FileInputStream("src/test/resources/model-loader-no-auth-password.properties"));\r
118         config = new ModelLoaderConfig(props, null);\r
119         aaiClient = new AaiRestClient(config);\r
120 \r
121         assertFalse("No AAI Password should result in no basic authentication",\r
122         aaiClient.useBasicAuth());\r
123     }\r
124 \r
125     @Test\r
126     public void testGetUrls() {\r
127         Properties props = new Properties();\r
128         props.put(ModelLoaderConfig.PROP_AAI_MODEL_RESOURCE_URL, "/aai/v*/service-design-and-creation/models/model/");\r
129         props.put(ModelLoaderConfig.PROP_AAI_NAMED_QUERY_RESOURCE_URL,\r
130                 "/aai/v*/service-design-and-creation/named-queries/named-query/");\r
131         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
132 \r
133         assertEquals("/aai/v9/service-design-and-creation/models/model/", config.getAaiModelUrl("v9"));\r
134         assertEquals("/aai/v10/service-design-and-creation/named-queries/named-query/",\r
135                 config.getAaiNamedQueryUrl("v10"));\r
136     }\r
137 \r
138     @Test\r
139     public void testActivateServerTLSAuth(){\r
140         Properties props = new Properties();\r
141         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_ACTIVE_SERVER_TLS_AUTH, "true");\r
142         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
143         boolean authValue = config.activateServerTLSAuth();\r
144         assertTrue(authValue);\r
145 \r
146         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_ACTIVE_SERVER_TLS_AUTH, "");\r
147         ModelLoaderConfig config1 = new ModelLoaderConfig(props, null);\r
148         boolean authValue1 = config.activateServerTLSAuth();\r
149         assertFalse(authValue1);\r
150     }\r
151 \r
152     @Test\r
153     public void testGetAsdcAddress(){\r
154         Properties props = new Properties();\r
155         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_ASDC_ADDRESS, "address-1");\r
156         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
157         String asdcAddr = config.getAsdcAddress();\r
158         assertEquals(asdcAddr, "address-1");\r
159     }\r
160 \r
161     @Test\r
162     public void testGetConsumerGroup(){\r
163         Properties props = new Properties();\r
164         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_CONSUMER_GROUP, "group-1");\r
165         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
166         String ret = config.getConsumerGroup();\r
167         assertEquals(ret, "group-1");\r
168     }\r
169 \r
170     @Test\r
171     public void testGetConsumerID(){\r
172         Properties props = new Properties();\r
173         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_CONSUMER_ID, "id-1");\r
174         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
175         String ret = config.getConsumerID();\r
176         assertEquals(ret, "id-1");\r
177     }\r
178 \r
179     @Test\r
180     public void testGetEnvironmentName(){\r
181         Properties props = new Properties();\r
182         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_ENVIRONMENT_NAME, "local");\r
183         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
184         String ret = config.getEnvironmentName();\r
185         assertEquals(ret, "local");\r
186     }\r
187 \r
188     @Test\r
189     public void testGetKeyStorePath(){\r
190         Properties props = new Properties();\r
191         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_KEYSTORE_FILE, "keystore-file");\r
192         ModelLoaderConfig config = new ModelLoaderConfig(props, "local/");\r
193         String ret = config.getKeyStorePath();\r
194         assertEquals(ret, "local/keystore-file");\r
195     }\r
196 \r
197     @Test\r
198     public void testGetPollingInterval(){\r
199         Properties props = new Properties();\r
200         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_POLLING_INTERVAL, "60");\r
201         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
202         int ret = config.getPollingInterval();\r
203         assertTrue(ret == 60);\r
204     }\r
205 \r
206     @Test\r
207     public void testGetPollingTimeout(){\r
208         Properties props = new Properties();\r
209         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_POLLING_TIMEOUT, "30");\r
210         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
211         int ret = config.getPollingTimeout();\r
212         assertTrue(ret == 30);\r
213     }\r
214 \r
215     @Test\r
216     public void testGetUser(){\r
217         Properties props = new Properties();\r
218         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_USER, "user-1");\r
219         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
220         String ret = config.getUser();\r
221         assertEquals(ret, "user-1");\r
222     }\r
223 \r
224     @Test\r
225     public void testIsFilterInEmptyResources(){\r
226         Properties props = new Properties();\r
227         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_POLLING_TIMEOUT, "30");\r
228         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
229         Boolean ret = config.isFilterInEmptyResources();\r
230         assertFalse(ret);\r
231     }\r
232 \r
233     @Test\r
234     public void testIsUseHttpsWithDmaap(){\r
235         Properties props = new Properties();\r
236         props.put(ModelLoaderConfig.PROP_ML_DISTRIBUTION_HTTPS_WITH_DMAAP, "true");\r
237         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
238         Boolean ret = config.isUseHttpsWithDmaap();\r
239         assertTrue(ret);\r
240     }\r
241 \r
242     @Test\r
243     public void testGetAaiKeyStorePath(){\r
244         Properties props = new Properties();\r
245         props.put(ModelLoaderConfig.PROP_AAI_KEYSTORE_FILE, "keystore-file");\r
246         ModelLoaderConfig config = new ModelLoaderConfig(props, "local");\r
247         String ret = config.getAaiKeyStorePath();\r
248         assertEquals(ret, "local/keystore-file");\r
249     }\r
250 \r
251     @Test\r
252     public void testGetAaiKeyStorePassword(){\r
253         Properties props = new Properties();\r
254         String testPass = "youshallnotpass";\r
255         String encryptedTestPass = Password.obfuscate(testPass);\r
256 \r
257         props.put(ModelLoaderConfig.PROP_AAI_KEYSTORE_PASSWORD, encryptedTestPass);\r
258         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
259 \r
260         assertEquals(testPass, config.getAaiKeyStorePassword());\r
261     }\r
262 \r
263     @Test\r
264     public void testGetIngestSimulatorEnabled(){\r
265         Properties props = new Properties();\r
266         props.put(ModelLoaderConfig.PROP_DEBUG_INGEST_SIMULATOR, "enabled");\r
267         ModelLoaderConfig config = new ModelLoaderConfig(props, null);\r
268         boolean ret = config.getIngestSimulatorEnabled();\r
269         assertTrue(ret);\r
270 \r
271         props.put(ModelLoaderConfig.PROP_DEBUG_INGEST_SIMULATOR, "disabled");\r
272         ModelLoaderConfig config1 = new ModelLoaderConfig(props, null);\r
273         boolean ret1 = config.getIngestSimulatorEnabled();\r
274         assertFalse(ret1);\r
275     }\r
276 }\r