aboutsummaryrefslogtreecommitdiffstats
path: root/datafile-app-server/src/test/java/org/onap/dcaegen2/collectors/datafile/configuration/AppConfigTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'datafile-app-server/src/test/java/org/onap/dcaegen2/collectors/datafile/configuration/AppConfigTest.java')
-rw-r--r--datafile-app-server/src/test/java/org/onap/dcaegen2/collectors/datafile/configuration/AppConfigTest.java122
1 files changed, 44 insertions, 78 deletions
diff --git a/datafile-app-server/src/test/java/org/onap/dcaegen2/collectors/datafile/configuration/AppConfigTest.java b/datafile-app-server/src/test/java/org/onap/dcaegen2/collectors/datafile/configuration/AppConfigTest.java
index d9ca7871..f661dd0e 100644
--- a/datafile-app-server/src/test/java/org/onap/dcaegen2/collectors/datafile/configuration/AppConfigTest.java
+++ b/datafile-app-server/src/test/java/org/onap/dcaegen2/collectors/datafile/configuration/AppConfigTest.java
@@ -19,20 +19,17 @@ package org.onap.dcaegen2.collectors.datafile.configuration;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.junit.Assert.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.read.ListAppender;
+
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
import com.google.gson.JsonElement;
@@ -40,29 +37,28 @@ import com.google.gson.JsonIOException;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
+
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.StandardCharsets;
-import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
+
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException;
import org.onap.dcaegen2.collectors.datafile.model.logging.MappedDiagnosticContext;
import org.onap.dcaegen2.collectors.datafile.utils.LoggingUtils;
-import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.http.configuration.EnvProperties;
-import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.http.configuration.ImmutableEnvProperties;
-import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.providers.CloudConfigurationProvider;
-import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapConsumerConfiguration;
-import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.DmaapPublisherConfiguration;
+import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.api.CbsClient;
+import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.EnvProperties;
+import org.onap.dcaegen2.services.sdk.rest.services.cbs.client.model.ImmutableEnvProperties;
import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.ImmutableDmaapConsumerConfiguration;
import org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.ImmutableDmaapPublisherConfiguration;
-import reactor.core.Disposable;
+
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
@@ -73,12 +69,14 @@ import reactor.test.StepVerifier;
* @author <a href="mailto:przemyslaw.wasala@nokia.com">Przemysław Wąsala</a> on 4/9/18
* @author <a href="mailto:henrik.b.andersson@est.tech">Henrik Andersson</a>
*/
-class AppConfigTest {
+public class AppConfigTest {
- private static final String CHANGE_IDENTIFIER = "PM_MEAS_FILES";
+ public static final String CHANGE_IDENTIFIER = "PM_MEAS_FILES";
- private static final DmaapConsumerConfiguration CORRECT_DMAAP_CONSUMER_CONFIG = //
+ public static final ImmutableDmaapConsumerConfiguration CORRECT_DMAAP_CONSUMER_CONFIG = //
new ImmutableDmaapConsumerConfiguration.Builder() //
+ .endpointUrl(
+ "http://admin:admin@message-router.onap.svc.cluster.local:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12")
.timeoutMs(-1) //
.dmaapHostName("message-router.onap.svc.cluster.local") //
.dmaapUserName("admin") //
@@ -97,7 +95,7 @@ class AppConfigTest {
.enableDmaapCertAuth(true) //
.build();
- private static final ConsumerConfiguration CORRECT_CONSUMER_CONFIG = ImmutableConsumerConfiguration.builder() //
+ public static final ConsumerConfiguration CORRECT_CONSUMER_CONFIG = ImmutableConsumerConfiguration.builder() //
.topicUrl(
"http://admin:admin@message-router.onap.svc.cluster.local:2222/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12")
.trustStorePath("trustStorePath") //
@@ -120,7 +118,7 @@ class AppConfigTest {
.passWord("password") //
.build();
- private static final FtpesConfig CORRECT_FTPES_CONFIGURATION = //
+ private static final ImmutableFtpesConfig CORRECT_FTPES_CONFIGURATION = //
new ImmutableFtpesConfig.Builder() //
.keyCert("/config/dfc.jks") //
.keyPassword("secret") //
@@ -128,9 +126,9 @@ class AppConfigTest {
.trustedCaPassword("secret") //
.build();
- private static final DmaapPublisherConfiguration CORRECT_DMAAP_PUBLISHER_CONFIG = //
+ private static final ImmutableDmaapPublisherConfiguration CORRECT_DMAAP_PUBLISHER_CONFIG = //
new ImmutableDmaapPublisherConfiguration.Builder() //
- .dmaapTopicName("/publish/1") //
+ .endpointUrl("https://message-router.onap.svc.cluster.local:3907/publish/1").dmaapTopicName("/publish/1") //
.dmaapUserPassword("password") //
.dmaapPortNumber(3907) //
.dmaapProtocol("https") //
@@ -154,14 +152,14 @@ class AppConfigTest {
}
private AppConfig appConfigUnderTest;
- private CloudConfigurationProvider cloudConfigurationProvider = mock(CloudConfigurationProvider.class);
private final Map<String, String> context = MappedDiagnosticContext.initializeTraceContext();
+ CbsClient cbsClient = mock(CbsClient.class);
@BeforeEach
- public void setUp() {
+ void setUp() {
appConfigUnderTest = spy(AppConfig.class);
- appConfigUnderTest.setCloudConfigurationProvider(cloudConfigurationProvider);
appConfigUnderTest.systemEnvironment = new Properties();
+
}
@Test
@@ -212,19 +210,14 @@ class AppConfigTest {
// Given
appConfigUnderTest.setFilepath("/temp.json");
- ListAppender<ILoggingEvent> logAppender = LoggingUtils.getLogListAppender(AppConfig.class);
-
// When
appConfigUnderTest.loadConfigurationFromFile();
// Then
- assertTrue("Error message missing in log.",
- logAppender.list.toString().contains("[WARN] Local configuration file not loaded: /temp.json"));
- logAppender.stop();
-
Assertions.assertNull(appConfigUnderTest.getDmaapConsumerConfiguration());
assertThatThrownBy(() -> appConfigUnderTest.getPublisherConfiguration(CHANGE_IDENTIFIER))
.hasMessageContaining("No PublishingConfiguration loaded, changeIdentifier: PM_MEAS_FILES");
+
Assertions.assertNull(appConfigUnderTest.getFtpesConfiguration());
}
@@ -264,32 +257,31 @@ class AppConfigTest {
@Test
public void whenPeriodicConfigRefreshNoEnvironmentVariables() {
ListAppender<ILoggingEvent> logAppender = LoggingUtils.getLogListAppender(AppConfig.class);
-
- Flux<AppConfig> task = appConfigUnderTest.createRefreshConfigurationTask(1L, context);
+ Flux<AppConfig> task = appConfigUnderTest.createRefreshTask(context);
StepVerifier //
.create(task) //
.expectSubscription() //
- .expectNextCount(0) //
- .verifyComplete();
+ .verifyComplete(); //
assertTrue(logAppender.list.toString().contains("$CONSUL_HOST environment has not been defined"));
}
@Test
public void whenPeriodicConfigRefreshNoConsul() {
+ ListAppender<ILoggingEvent> logAppender = LoggingUtils.getLogListAppender(AppConfig.class);
+ EnvProperties props = properties();
+ doReturn(Mono.just(props)).when(appConfigUnderTest).getEnvironment(any(), any());
- doReturn(Mono.just(properties())).when(appConfigUnderTest).readEnvironmentVariables(any(), any());
- Mono<JsonObject> err = Mono.error(new IOException());
- doReturn(err).when(cloudConfigurationProvider).callForServiceConfigurationReactive(any());
+ doReturn(Mono.just(cbsClient)).when(appConfigUnderTest).createCbsClient(props);
+ Flux<JsonObject> err = Flux.error(new IOException());
+ doReturn(err).when(cbsClient).updates(any(), any(), any());
- ListAppender<ILoggingEvent> logAppender = LoggingUtils.getLogListAppender(AppConfig.class);
- Flux<AppConfig> task = appConfigUnderTest.createRefreshConfigurationTask(1L, context);
+ Flux<AppConfig> task = appConfigUnderTest.createRefreshTask(context);
StepVerifier //
.create(task) //
.expectSubscription() //
- .expectNextCount(0) //
.verifyComplete();
assertTrue(
@@ -298,13 +290,14 @@ class AppConfigTest {
@Test
public void whenPeriodicConfigRefreshSuccess() throws JsonIOException, JsonSyntaxException, IOException {
- doReturn(Mono.just(properties())).when(appConfigUnderTest).readEnvironmentVariables(any(), any());
-
- Mono<JsonObject> json = Mono.just(getJsonRootObject());
+ EnvProperties props = properties();
+ doReturn(Mono.just(props)).when(appConfigUnderTest).getEnvironment(any(), any());
+ doReturn(Mono.just(cbsClient)).when(appConfigUnderTest).createCbsClient(props);
- doReturn(json, json).when(cloudConfigurationProvider).callForServiceConfigurationReactive(any());
+ Flux<JsonObject> json = Flux.just(getJsonRootObject());
+ doReturn(json).when(cbsClient).updates(any(), any(), any());
- Flux<AppConfig> task = appConfigUnderTest.createRefreshConfigurationTask(1L, context);
+ Flux<AppConfig> task = appConfigUnderTest.createRefreshTask(context);
StepVerifier //
.create(task) //
@@ -317,14 +310,18 @@ class AppConfigTest {
@Test
public void whenPeriodicConfigRefreshSuccess2() throws JsonIOException, JsonSyntaxException, IOException {
- doReturn(Mono.just(properties())).when(appConfigUnderTest).readEnvironmentVariables(any(), any());
+ EnvProperties props = properties();
+ doReturn(Mono.just(props)).when(appConfigUnderTest).getEnvironment(any(), any());
- Mono<JsonObject> json = Mono.just(getJsonRootObject());
- Mono<JsonObject> err = Mono.error(new IOException()); // no config entry created by the dmaap plugin
+ doReturn(Mono.just(cbsClient)).when(appConfigUnderTest).createCbsClient(props);
- doReturn(json, err).when(cloudConfigurationProvider).callForServiceConfigurationReactive(any());
+ Flux<JsonObject> json = Flux.just(getJsonRootObject());
+ Flux<JsonObject> err = Flux.error(new IOException()); // no config entry created by the
+ // dmaap plugin
- Flux<AppConfig> task = appConfigUnderTest.createRefreshConfigurationTask(1L, context);
+ doReturn(json, err).when(cbsClient).updates(any(), any(), any());
+
+ Flux<AppConfig> task = appConfigUnderTest.createRefreshTask(context);
StepVerifier //
.create(task) //
@@ -335,37 +332,6 @@ class AppConfigTest {
Assertions.assertNotNull(appConfigUnderTest.getDmaapConsumerConfiguration());
}
- @Test
- public void whenStopSuccess() {
- Disposable disposableMock = mock(Disposable.class);
- appConfigUnderTest.refreshConfigTask = disposableMock;
-
- appConfigUnderTest.stop();
-
- verify(disposableMock).dispose();
- verifyNoMoreInteractions(disposableMock);
- assertNull(appConfigUnderTest.refreshConfigTask);
- }
-
- @Test
- public void whenNoPublisherConfigurationThrowException() throws DatafileTaskException {
- appConfigUnderTest.publishingConfigurations = new HashMap<>();
-
- DatafileTaskException exception = assertThrows(DatafileTaskException.class,
- () -> appConfigUnderTest.getPublisherConfiguration(CHANGE_IDENTIFIER));
- assertEquals("Cannot find getPublishingConfiguration for changeIdentifier: " + CHANGE_IDENTIFIER,
- exception.getMessage());
- }
-
- @Test
- public void whenFeedIsConfiguredReturnTrue() {
- HashMap<String, PublisherConfiguration> publishingConfigs = new HashMap<>();
- publishingConfigs.put(CHANGE_IDENTIFIER, null);
- appConfigUnderTest.publishingConfigurations = publishingConfigs;
-
- assertTrue(appConfigUnderTest.isFeedConfigured(CHANGE_IDENTIFIER));
- }
-
private JsonObject getJsonRootObject() throws JsonIOException, JsonSyntaxException, IOException {
JsonObject rootObject = (new JsonParser()).parse(new InputStreamReader(getCorrectJson())).getAsJsonObject();
return rootObject;