21a9b198f1dedc3a44c72a48696b70e36428c4ba
[sdc.git] /
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.be.components.distribution.engine;
22
23 import org.junit.jupiter.api.BeforeEach;
24 import org.junit.jupiter.api.Test;
25 import org.mockito.Mock;
26 import org.mockito.Mockito;
27 import org.mockito.MockitoAnnotations;
28 import org.openecomp.sdc.be.components.kafka.KafkaHandler;
29 import org.openecomp.sdc.be.config.ConfigurationManager;
30 import org.openecomp.sdc.be.config.DistributionEngineConfiguration;
31 import org.openecomp.sdc.be.config.DistributionEngineConfiguration.ComponentArtifactTypesConfig;
32 import org.openecomp.sdc.be.config.DistributionEngineConfiguration.CreateTopicConfig;
33 import org.openecomp.sdc.be.config.DistributionEngineConfiguration.DistributionStatusTopicConfig;
34 import org.openecomp.sdc.common.api.ConfigurationSource;
35 import org.openecomp.sdc.common.impl.ExternalConfiguration;
36 import org.openecomp.sdc.common.impl.FSConfigurationSource;
37
38 import java.io.File;
39 import java.util.ArrayList;
40 import java.util.List;
41
42 import static org.junit.jupiter.api.Assertions.assertFalse;
43 import static org.junit.jupiter.api.Assertions.assertTrue;
44 import static org.mockito.Mockito.when;
45
46 class DistributionEngineConfigTest {
47
48     @Mock
49     private KafkaHandler kafkaHandler;
50
51     @BeforeEach
52     public void setup() {
53         MockitoAnnotations.openMocks(this);
54
55         ExternalConfiguration.setAppName("catalog-be");
56         ExternalConfiguration.setConfigDir("src/test/resources/config");
57         ExternalConfiguration.listenForChanges();
58
59         new ConfigurationManager(new FSConfigurationSource(ExternalConfiguration.getChangeListener(), ExternalConfiguration.getConfigDir() + File.separator + ExternalConfiguration.getAppName()));
60     }
61
62     @Test
63     void validateMissingEnvironments() {
64
65         when(kafkaHandler.isKafkaActive()).thenReturn(false);
66
67         DistributionEngineConfiguration deConfiguration = new DistributionEngineConfiguration();
68
69         String uebPublicKey = "uebPublicKey";
70         String uebSecretKey = "uebSecretKey";
71
72         DistributionEngine distributionEngine = new DistributionEngine();
73         distributionEngine.setKafkaHandler(kafkaHandler);
74         List<String> environments = new ArrayList<>();
75         environments.add("PROD");
76         deConfiguration.setEnvironments(environments);
77
78         List<String> servers = new ArrayList<>();
79         servers.add("server1:80");
80         servers.add("server2:8080");
81
82         CreateTopicConfig createTopic = new CreateTopicConfig();
83         createTopic.setPartitionCount(1);
84         createTopic.setReplicationCount(1);
85         deConfiguration.setCreateTopic(createTopic);
86
87         ComponentArtifactTypesConfig distribNotifResourceArtifactTypes = new ComponentArtifactTypesConfig();
88         deConfiguration.setDistribNotifResourceArtifactTypes(distribNotifResourceArtifactTypes);
89
90         ComponentArtifactTypesConfig distribNotifServiceArtifactTypes = new ComponentArtifactTypesConfig();
91         deConfiguration.setDistribNotifServiceArtifactTypes(distribNotifServiceArtifactTypes);
92
93         deConfiguration.setDistributionNotifTopicName("distributionNotifTopicName");
94         deConfiguration.setDistributionStatusTopicName("statusTopic");
95
96         DistributionStatusTopicConfig distributionStatusTopic = new DistributionStatusTopicConfig();
97         distributionStatusTopic.setConsumerGroup("asdc-group");
98         distributionStatusTopic.setConsumerId("asdc-id");
99         distributionStatusTopic.setFetchTimeSec(20);
100         distributionStatusTopic.setPollingIntervalSec(20);
101         deConfiguration.setDistributionStatusTopic(distributionStatusTopic);
102
103         deConfiguration.setUebServers(servers);
104         deConfiguration.setUebPublicKey(uebPublicKey);
105         deConfiguration.setUebSecretKey(uebSecretKey);
106         deConfiguration.setInitMaxIntervalSec(8);
107         deConfiguration.setInitRetryIntervalSec(3);
108
109         boolean isValid = distributionEngine.validateConfiguration(deConfiguration);
110         assertTrue(isValid, "check empty configuration");
111
112         deConfiguration.setUebServers(null);
113         isValid = distributionEngine.validateConfiguration(deConfiguration);
114         assertFalse(isValid, "check empty configuration");
115
116         deConfiguration.setUebServers(servers);
117         isValid = distributionEngine.validateConfiguration(deConfiguration);
118         assertTrue(isValid, "check empty configuration");
119
120         deConfiguration.setEnvironments(null);
121         isValid = distributionEngine.validateConfiguration(deConfiguration);
122         assertFalse(isValid, "check empty configuration");
123
124         deConfiguration.setEnvironments(environments);
125         isValid = distributionEngine.validateConfiguration(deConfiguration);
126         assertTrue(isValid, "check empty configuration");
127
128         deConfiguration.setUebPublicKey(null);
129         isValid = distributionEngine.validateConfiguration(deConfiguration);
130         assertFalse(isValid, "check empty configuration");
131
132         deConfiguration.setUebPublicKey(uebPublicKey);
133         isValid = distributionEngine.validateConfiguration(deConfiguration);
134         assertTrue(isValid, "check empty configuration");
135
136         deConfiguration.setUebSecretKey(null);
137         isValid = distributionEngine.validateConfiguration(deConfiguration);
138         assertFalse(isValid, "check empty configuration");
139
140         deConfiguration.setUebSecretKey(uebPublicKey);
141         isValid = distributionEngine.validateConfiguration(deConfiguration);
142         assertTrue(isValid, "check empty configuration");
143
144         deConfiguration.setDistributionNotifTopicName(null);
145         isValid = distributionEngine.validateConfiguration(deConfiguration);
146         assertFalse(isValid, "check empty configuration");
147
148         deConfiguration.setDistributionNotifTopicName(uebPublicKey);
149         isValid = distributionEngine.validateConfiguration(deConfiguration);
150         assertTrue(isValid, "check empty configuration");
151
152         deConfiguration.setDistributionStatusTopicName(null);
153         isValid = distributionEngine.validateConfiguration(deConfiguration);
154         assertFalse(isValid, "check empty configuration");
155
156         deConfiguration.setDistributionStatusTopicName(uebPublicKey);
157         isValid = distributionEngine.validateConfiguration(deConfiguration);
158         assertTrue(isValid, "check empty configuration");
159
160         deConfiguration.setInitMaxIntervalSec(null);
161         isValid = distributionEngine.validateConfiguration(deConfiguration);
162         assertFalse(isValid, "check empty configuration");
163
164         deConfiguration.setInitMaxIntervalSec(8);
165         isValid = distributionEngine.validateConfiguration(deConfiguration);
166         assertTrue(isValid, "check empty configuration");
167
168         deConfiguration.setInitRetryIntervalSec(null);
169         isValid = distributionEngine.validateConfiguration(deConfiguration);
170         assertFalse(isValid, "check empty configuration");
171
172         deConfiguration.setInitRetryIntervalSec(8);
173         isValid = distributionEngine.validateConfiguration(deConfiguration);
174         assertTrue(isValid, "check empty configuration");
175
176     }
177
178 }