X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Fconfiguration%2FApplicationConfigTest.java;h=830a821c6477ea62e9a32c9478c3bb8313cd45ac;hb=01cf1b466e7eebf51789b83fbab5139880c20107;hp=0cbb3956cb907cdd2a5afd590aeb8579aaa28b5c;hpb=6fe1880bfac3daa86c05461da80147325f5f47a2;p=nonrtric.git diff --git a/policy-agent/src/test/java/org/oransc/policyagent/configuration/ApplicationConfigTest.java b/policy-agent/src/test/java/org/oransc/policyagent/configuration/ApplicationConfigTest.java index 0cbb3956..830a821c 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/configuration/ApplicationConfigTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/configuration/ApplicationConfigTest.java @@ -17,20 +17,18 @@ * limitations under the License. * ========================LICENSE_END=================================== */ + package org.oransc.policyagent.configuration; +import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.assertTrue; 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.doReturn; -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.Properties; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + import ch.qos.logback.classic.spi.ILoggingEvent; import ch.qos.logback.core.read.ListAppender; import com.google.common.base.Charsets; @@ -39,11 +37,21 @@ import com.google.gson.JsonIOException; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import com.google.gson.JsonSyntaxException; -import org.junit.Test; +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.Arrays; +import java.util.Properties; +import java.util.Vector; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; 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.oransc.policyagent.exceptions.ServiceException; import org.oransc.policyagent.utils.LoggingUtils; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -54,14 +62,52 @@ public class ApplicationConfigTest { private ApplicationConfig appConfigUnderTest; CbsClient cbsClient = mock(CbsClient.class); + public static final ImmutableRicConfig CORRECT_RIC_CONIFG = ImmutableRicConfig.builder() // + .name("ric1") // + .baseUrl("http://localhost:8080/") // + .managedElementIds(new Vector(Arrays.asList("kista_1", "kista_2"))) // + .build(); private static EnvProperties properties() { return ImmutableEnvProperties.builder() // - .consulHost("host") // - .consulPort(123) // - .cbsName("cbsName") // - .appName("appName") // - .build(); + .consulHost("host") // + .consulPort(123) // + .cbsName("cbsName") // + .appName("appName") // + .build(); + } + + @Test + public void whenTheConfigurationFits() throws IOException, ServiceException { + + appConfigUnderTest = spy(ApplicationConfig.class); + appConfigUnderTest.systemEnvironment = new Properties(); + // When + doReturn(getCorrectJson()).when(appConfigUnderTest).createInputStream(any()); + appConfigUnderTest.initialize(); + + // Then + verify(appConfigUnderTest, times(1)).loadConfigurationFromFile(any()); + + Vector ricConfigs = appConfigUnderTest.getRicConfigs(); + RicConfig ricConfig = ricConfigs.firstElement(); + assertThat(ricConfigs).isNotNull(); + assertThat(ricConfig).isEqualTo(CORRECT_RIC_CONIFG); + } + + @Test + public void whenFileIsExistsButJsonIsIncorrect() throws IOException, ServiceException { + + appConfigUnderTest = spy(ApplicationConfig.class); + appConfigUnderTest.systemEnvironment = new Properties(); + + // When + doReturn(getIncorrectJson()).when(appConfigUnderTest).createInputStream(any()); + appConfigUnderTest.loadConfigurationFromFile(any()); + + // Then + verify(appConfigUnderTest, times(1)).loadConfigurationFromFile(any()); + Assertions.assertNull(appConfigUnderTest.getRicConfigs()); } @Test @@ -73,9 +119,7 @@ public class ApplicationConfigTest { final ListAppender logAppender = LoggingUtils.getLogListAppender(ApplicationConfig.class); Flux task = appConfigUnderTest.createRefreshTask(); - StepVerifier.create(task) - .expectSubscription() - .verifyComplete(); + StepVerifier.create(task).expectSubscription().verifyComplete(); assertTrue(logAppender.list.toString().contains("$CONSUL_HOST environment has not been defined")); } @@ -96,12 +140,12 @@ public class ApplicationConfigTest { Flux task = appConfigUnderTest.createRefreshTask(); StepVerifier // - .create(task) // - .expectSubscription() // - .verifyComplete(); + .create(task) // + .expectSubscription() // + .verifyComplete(); assertTrue( - logAppender.list.toString().contains("Could not refresh application configuration java.io.IOException")); + logAppender.list.toString().contains("Could not refresh application configuration java.io.IOException")); } @Test @@ -119,10 +163,10 @@ public class ApplicationConfigTest { Flux task = appConfigUnderTest.createRefreshTask(); StepVerifier // - .create(task) // - .expectSubscription() // - .expectNext(appConfigUnderTest) // - .verifyComplete(); + .create(task) // + .expectSubscription() // + .expectNext(appConfigUnderTest) // + .verifyComplete(); Assertions.assertNotNull(appConfigUnderTest.getRicConfigs()); } @@ -138,4 +182,11 @@ public class ApplicationConfigTest { return new ByteArrayInputStream((string.getBytes(StandardCharsets.UTF_8))); } + private static InputStream getIncorrectJson() { + String string = "{" + // + " \"config\": {" + // + " \"ric\": {"; // + return new ByteArrayInputStream((string.getBytes(StandardCharsets.UTF_8))); + } + }