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