re base code
[sdc.git] / common-app-api / src / test / java / org / openecomp / sdc / common / test / TestExternalConfiguration.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.common.test;
22
23 import static org.junit.Assert.assertNotNull;
24 import static org.junit.Assert.assertNull;
25 import org.junit.Before;
26 import org.junit.Test;
27 import org.openecomp.sdc.be.config.DistributionEngineConfiguration;
28 import org.openecomp.sdc.common.api.BasicConfiguration;
29 import org.openecomp.sdc.common.api.ConfigurationListener;
30 import org.openecomp.sdc.common.api.ConfigurationSource;
31 import org.openecomp.sdc.common.api.FileChangeCallback;
32 import org.openecomp.sdc.common.impl.ExternalConfiguration;
33 import org.openecomp.sdc.common.impl.FSConfigurationSource;
34 import org.openecomp.sdc.common.test.config.TestConfiguration;
35 import org.openecomp.sdc.common.test.config.TestNotExistConfiguration;
36 import org.slf4j.Logger;
37 import org.slf4j.LoggerFactory;
38
39 import java.io.*;
40 import java.util.ArrayList;
41 import java.util.List;
42
43 import static org.junit.Assert.assertEquals;
44 import static org.junit.Assert.assertTrue;
45
46 public class TestExternalConfiguration {
47
48         private static Logger log = LoggerFactory.getLogger(TestExternalConfiguration.class.getName());
49         private static final String NEW_LINE = System.getProperty("line.separator");
50         ConfigurationSource configurationSource = null;
51
52         @Before
53         public void setup() {
54
55                 ExternalConfiguration.setAppName("common");
56                 ExternalConfiguration.setConfigDir("src/test/resources/config");
57                 ExternalConfiguration.listenForChanges();
58
59                 configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(),
60                                 ExternalConfiguration.getConfigDir() + File.separator + ExternalConfiguration.getAppName());
61
62         }
63
64         @Test
65         public void testReadConfigurationFile() {
66
67                 ConfigurationListener configurationListener = new ConfigurationListener(TestConfiguration.class,
68                                 new FileChangeCallback() {
69
70                                         public void reconfigure(BasicConfiguration obj) {
71                                                 // TODO Auto-generated method stub
72                                                 log.debug("In reconfigure of {}", obj);
73                                         }
74
75                                 });
76
77                 TestConfiguration testConfiguration = configurationSource.getAndWatchConfiguration(TestConfiguration.class,
78                                 configurationListener);
79
80         assertNotNull(testConfiguration);
81                 log.debug("{}", testConfiguration);
82                 assertEquals(testConfiguration.getBeHost(), "172.20.37.245");
83                 assertEquals(testConfiguration.getBeProtocol(), "http");
84                 assertEquals(testConfiguration.getBeContext(), "/sdc/rest/config/get");
85
86         }
87
88         @Test
89         public void testNotExistConfigurationFile() {
90
91                 ConfigurationListener configurationListener = new ConfigurationListener(TestConfiguration.class,
92                                 new FileChangeCallback() {
93
94                                         public void reconfigure(BasicConfiguration obj) {
95                                                 // TODO Auto-generated method stub
96                                                 log.debug("In reconfigure of {}", obj);
97                                         }
98
99                                 });
100
101                 TestNotExistConfiguration testConfiguration = configurationSource
102                                 .getAndWatchConfiguration(TestNotExistConfiguration.class, configurationListener);
103
104         assertNull(testConfiguration);
105
106         }
107
108         @Test
109         public void testUpdateConfigurationFile() {
110
111                 ConfigurationListener configurationListener = new ConfigurationListener(TestConfiguration.class,
112                                 new FileChangeCallback() {
113
114                                         public void reconfigure(BasicConfiguration obj) {
115                                                 // TODO Auto-generated method stub
116                                                 log.debug("In reconfigure of {}", obj);
117                                                 // assertEquals(((TestConfiguration)obj).getBeSslPort(),
118                                                 // 8444);
119
120                                                 // assertTrue(((TestConfiguration)obj).getBeSslPort() ==
121                                                 // 8444);
122                                         }
123
124                                 });
125
126                 TestConfiguration testConfiguration = configurationSource.getAndWatchConfiguration(TestConfiguration.class,
127                                 configurationListener);
128
129         assertNotNull(testConfiguration);
130                 log.debug("{}", testConfiguration);
131                 assertEquals(testConfiguration.getBeHost(), "172.20.37.245");
132                 assertEquals(testConfiguration.getBeProtocol(), "http");
133                 assertEquals(testConfiguration.getBeContext(), "/sdc/rest/config/get");
134
135                 // updateFileContent();
136
137         }
138
139         private void updateFileContent() {
140                 File file = new File(ExternalConfiguration.getConfigDir() + File.separator + ExternalConfiguration.getAppName()
141                                 + File.separator + "test-configuration.yaml");
142                 replaceFile(file);
143
144                 try {
145                         Thread.sleep(5000);
146                 } catch (InterruptedException e) {
147                         e.printStackTrace();
148                 }
149         }
150
151         public void replaceFile(File f1) {
152                 FileReader fr = null;
153                 BufferedReader br = null;
154                 FileWriter fw = null;
155                 BufferedWriter out = null;
156                 try {
157                         List<String> lines = new ArrayList<>();
158                         String line = null;
159                         fr = new FileReader(f1);
160                         br = new BufferedReader(fr);
161                         while ((line = br.readLine()) != null) {
162                                 if (line.contains("beSslPort: 8443"))
163                                         line = line.replace("8443", "8444");
164                                 lines.add(line);
165                         }
166
167                         fw = new FileWriter(f1);
168                         out = new BufferedWriter(fw);
169                         for (String s : lines)
170                                 out.write(s + NEW_LINE);
171                         out.flush();
172                 } catch (Exception ex) {
173                         ex.printStackTrace();
174                 } finally {
175
176                         if (br != null) {
177                                 try {
178                                         br.close();
179                                 } catch (IOException e) {
180                                         e.printStackTrace();
181                                 }
182                         }
183                         if (fr != null) {
184                                 try {
185                                         fr.close();
186                                 } catch (IOException e) {
187                                         e.printStackTrace();
188                                 }
189                         }
190                         if (out != null) {
191                                 try {
192                                         out.close();
193                                 } catch (IOException e) {
194                                         e.printStackTrace();
195                                 }
196                         }
197                         if (fw != null) {
198                                 try {
199                                         fw.close();
200                                 } catch (IOException e) {
201                                         e.printStackTrace();
202                                 }
203                         }
204                 }
205         }
206
207         @Test
208         public void testReadDistributionEngineConfigurationFile() {
209
210                 ConfigurationListener configurationListener = new ConfigurationListener(TestConfiguration.class,
211                                 new FileChangeCallback() {
212
213                                         public void reconfigure(BasicConfiguration obj) {
214                                                 // TODO Auto-generated method stub
215                                                 log.debug("In reconfigure of ", obj);
216                                         }
217
218                                 });
219
220                 DistributionEngineConfiguration deConfiguration = configurationSource
221                                 .getAndWatchConfiguration(DistributionEngineConfiguration.class, configurationListener);
222
223         assertNotNull(deConfiguration);
224                 log.debug("{}", deConfiguration);
225                 assertEquals(deConfiguration.getDistributionNotifTopicName(), "ASDC-DISTR-NOTIF-TOPIC");
226                 assertEquals(deConfiguration.getDistributionStatusTopicName(), "ASDC-DISTR-STATUS-TOPIC");
227
228                 assertEquals(deConfiguration.getDistributionStatusTopic().getConsumerGroup(), "asdc");
229                 assertEquals(deConfiguration.getDistributionStatusTopic().getConsumerGroup(), "asdc");
230                 assertEquals(deConfiguration.getDistributionStatusTopic().getFetchTimeSec().intValue(), 15);
231                 assertEquals(deConfiguration.getDistributionStatusTopic().getPollingIntervalSec().intValue(), 60);
232
233                 assertEquals(deConfiguration.getEnvironments().size(), 1);
234                 assertEquals(deConfiguration.getEnvironments().iterator().next(), "PROD");
235
236         assertNull(deConfiguration.getDistribNotifResourceArtifactTypes().getInfo());
237                 assertEquals(deConfiguration.getDistribNotifResourceArtifactTypes().getLifecycle().size(), 2);
238                 assertTrue(deConfiguration.getDistribNotifResourceArtifactTypes().getLifecycle().contains("HEAT"));
239                 assertTrue(deConfiguration.getDistribNotifResourceArtifactTypes().getLifecycle().contains("DG_XML"));
240
241         assertNull(deConfiguration.getDistribNotifServiceArtifactTypes().getLifecycle());
242                 assertEquals(deConfiguration.getDistribNotifServiceArtifactTypes().getInfo().size(), 1);
243                 assertTrue(deConfiguration.getDistribNotifServiceArtifactTypes().getInfo().contains("MURANO-PKG"));
244
245                 assertEquals(deConfiguration.getUebPublicKey(), "fff");
246                 assertEquals(deConfiguration.getUebSecretKey(), "ffff");
247                 assertEquals(deConfiguration.getUebServers().size(), 3);
248                 assertEquals(deConfiguration.getInitRetryIntervalSec().intValue(), 5);
249
250         }
251
252 }