2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.be.components.distribution.engine;
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;
39 import java.util.ArrayList;
40 import java.util.List;
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;
46 class DistributionEngineConfigTest {
49 private KafkaHandler kafkaHandler;
53 MockitoAnnotations.openMocks(this);
55 ExternalConfiguration.setAppName("catalog-be");
56 ExternalConfiguration.setConfigDir("src/test/resources/config");
57 ExternalConfiguration.listenForChanges();
59 new ConfigurationManager(new FSConfigurationSource(ExternalConfiguration.getChangeListener(), ExternalConfiguration.getConfigDir() + File.separator + ExternalConfiguration.getAppName()));
63 void validateMissingEnvironments() {
65 when(kafkaHandler.isKafkaActive()).thenReturn(false);
67 DistributionEngineConfiguration deConfiguration = new DistributionEngineConfiguration();
69 String uebPublicKey = "uebPublicKey";
70 String uebSecretKey = "uebSecretKey";
72 DistributionEngine distributionEngine = new DistributionEngine();
73 distributionEngine.setKafkaHandler(kafkaHandler);
74 List<String> environments = new ArrayList<>();
75 environments.add("PROD");
76 deConfiguration.setEnvironments(environments);
78 List<String> servers = new ArrayList<>();
79 servers.add("server1:80");
80 servers.add("server2:8080");
82 CreateTopicConfig createTopic = new CreateTopicConfig();
83 createTopic.setPartitionCount(1);
84 createTopic.setReplicationCount(1);
85 deConfiguration.setCreateTopic(createTopic);
87 ComponentArtifactTypesConfig distribNotifResourceArtifactTypes = new ComponentArtifactTypesConfig();
88 deConfiguration.setDistribNotifResourceArtifactTypes(distribNotifResourceArtifactTypes);
90 ComponentArtifactTypesConfig distribNotifServiceArtifactTypes = new ComponentArtifactTypesConfig();
91 deConfiguration.setDistribNotifServiceArtifactTypes(distribNotifServiceArtifactTypes);
93 deConfiguration.setDistributionNotifTopicName("distributionNotifTopicName");
94 deConfiguration.setDistributionStatusTopicName("statusTopic");
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);
103 deConfiguration.setUebServers(servers);
104 deConfiguration.setUebPublicKey(uebPublicKey);
105 deConfiguration.setUebSecretKey(uebSecretKey);
106 deConfiguration.setInitMaxIntervalSec(8);
107 deConfiguration.setInitRetryIntervalSec(3);
109 boolean isValid = distributionEngine.validateConfiguration(deConfiguration);
110 assertTrue(isValid, "check empty configuration");
112 deConfiguration.setUebServers(null);
113 isValid = distributionEngine.validateConfiguration(deConfiguration);
114 assertFalse(isValid, "check empty configuration");
116 deConfiguration.setUebServers(servers);
117 isValid = distributionEngine.validateConfiguration(deConfiguration);
118 assertTrue(isValid, "check empty configuration");
120 deConfiguration.setEnvironments(null);
121 isValid = distributionEngine.validateConfiguration(deConfiguration);
122 assertFalse(isValid, "check empty configuration");
124 deConfiguration.setEnvironments(environments);
125 isValid = distributionEngine.validateConfiguration(deConfiguration);
126 assertTrue(isValid, "check empty configuration");
128 deConfiguration.setUebPublicKey(null);
129 isValid = distributionEngine.validateConfiguration(deConfiguration);
130 assertFalse(isValid, "check empty configuration");
132 deConfiguration.setUebPublicKey(uebPublicKey);
133 isValid = distributionEngine.validateConfiguration(deConfiguration);
134 assertTrue(isValid, "check empty configuration");
136 deConfiguration.setUebSecretKey(null);
137 isValid = distributionEngine.validateConfiguration(deConfiguration);
138 assertFalse(isValid, "check empty configuration");
140 deConfiguration.setUebSecretKey(uebPublicKey);
141 isValid = distributionEngine.validateConfiguration(deConfiguration);
142 assertTrue(isValid, "check empty configuration");
144 deConfiguration.setDistributionNotifTopicName(null);
145 isValid = distributionEngine.validateConfiguration(deConfiguration);
146 assertFalse(isValid, "check empty configuration");
148 deConfiguration.setDistributionNotifTopicName(uebPublicKey);
149 isValid = distributionEngine.validateConfiguration(deConfiguration);
150 assertTrue(isValid, "check empty configuration");
152 deConfiguration.setDistributionStatusTopicName(null);
153 isValid = distributionEngine.validateConfiguration(deConfiguration);
154 assertFalse(isValid, "check empty configuration");
156 deConfiguration.setDistributionStatusTopicName(uebPublicKey);
157 isValid = distributionEngine.validateConfiguration(deConfiguration);
158 assertTrue(isValid, "check empty configuration");
160 deConfiguration.setInitMaxIntervalSec(null);
161 isValid = distributionEngine.validateConfiguration(deConfiguration);
162 assertFalse(isValid, "check empty configuration");
164 deConfiguration.setInitMaxIntervalSec(8);
165 isValid = distributionEngine.validateConfiguration(deConfiguration);
166 assertTrue(isValid, "check empty configuration");
168 deConfiguration.setInitRetryIntervalSec(null);
169 isValid = distributionEngine.validateConfiguration(deConfiguration);
170 assertFalse(isValid, "check empty configuration");
172 deConfiguration.setInitRetryIntervalSec(8);
173 isValid = distributionEngine.validateConfiguration(deConfiguration);
174 assertTrue(isValid, "check empty configuration");