diff options
author | Rashmi Pujar <rashmi.pujar1@bell.ca> | 2022-02-04 21:49:30 -0500 |
---|---|---|
committer | Rashmi Pujar <rashmi.pujar1@bell.ca> | 2022-02-10 01:33:25 -0500 |
commit | 5f919673b13d8fd40a6a90b97f4e662ade068304 (patch) | |
tree | c24a727c3c60b228b28cd68df3d37ca56acd379e /main/src/test/java | |
parent | 2d4db3c6375ca761b25700226addea6060432b0d (diff) |
Migrate policy api startup & config, controller to springboot
Issue-ID: POLICY-3753
Signed-off-by: Rashmi Pujar <rashmi.pujar1@bell.ca>
Change-Id: I4537ed49b7fc57683bfc487f0d212642b7e69f17
Diffstat (limited to 'main/src/test/java')
12 files changed, 128 insertions, 865 deletions
diff --git a/main/src/test/java/org/onap/policy/api/main/parameters/CommonTestData.java b/main/src/test/java/org/onap/policy/api/main/parameters/CommonTestData.java deleted file mode 100644 index 32c44602..00000000 --- a/main/src/test/java/org/onap/policy/api/main/parameters/CommonTestData.java +++ /dev/null @@ -1,119 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP Policy API - * ================================================================================ - * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.api.main.parameters; - -import java.io.File; -import java.io.IOException; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import org.onap.policy.common.endpoints.parameters.RestServerParameters; -import org.onap.policy.common.utils.coder.Coder; -import org.onap.policy.common.utils.coder.CoderException; -import org.onap.policy.common.utils.coder.StandardCoder; -import org.onap.policy.common.utils.resources.TextFileUtils; -import org.onap.policy.models.provider.PolicyModelsProviderParameters; - -/** - * Class to hold/create all parameters for test cases. - * - */ -public class CommonTestData { - - public static final String API_GROUP_NAME = "ApiGroup"; - - /** - * Server port, as it appears within the config files. - */ - private static final String REST_SERVER_PORT = "6969"; - - private static final String PROVIDER_GROUP_NAME = "PolicyProviderParameterGroup"; - private static final String PROVIDER_IMPL = "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl"; - private static final String DATABASE_DRIVER = "org.h2.Driver"; - private static final String DATABASE_URL = "jdbc:h2:mem:testdb"; - private static final String DATABASE_USER = "policy"; - private static final String DATABASE_PASSWORD = "P01icY"; - private static final String PERSISTENCE_UNIT = "ToscaConceptTest"; - - private Coder coder = new StandardCoder(); - - /** - * Returns an instance of RestServerParameters for test cases. - * - * @param isEmpty boolean value to represent that object created should be empty or not - * @param port server port - * @return the RestServerParameters object - */ - public RestServerParameters getRestServerParameters(final boolean isEmpty, int port) { - String fileName = "src/test/resources/parameters/" - + (isEmpty ? "RestServerParametersEmpty" : "RestServerParameters") + ".json"; - try { - String text = new String(Files.readAllBytes(new File(fileName).toPath()), StandardCharsets.UTF_8); - text = text.replace("6969", String.valueOf(port)); - return coder.decode(text, RestServerParameters.class); - } catch (CoderException | IOException e) { - throw new RuntimeException("cannot read/decode " + fileName, e); - } - } - - /** - * Returns an instance of PolicyModelsProviderParameters for test cases. - * - * @param isEmpty boolean value to represent that object created should be empty or not - * @return the PolicyModelsProviderParameters object - */ - public PolicyModelsProviderParameters getDatabaseProviderParameters(final boolean isEmpty) { - final PolicyModelsProviderParameters databaseProviderParameters; - if (!isEmpty) { - databaseProviderParameters = new PolicyModelsProviderParameters(); - databaseProviderParameters.setName(PROVIDER_GROUP_NAME); - databaseProviderParameters.setImplementation(PROVIDER_IMPL); - databaseProviderParameters.setDatabaseDriver(DATABASE_DRIVER); - databaseProviderParameters.setDatabaseUrl(DATABASE_URL); - databaseProviderParameters.setDatabaseUser(DATABASE_USER); - databaseProviderParameters.setDatabasePassword(DATABASE_PASSWORD); - databaseProviderParameters.setPersistenceUnit(PERSISTENCE_UNIT); - } else { - databaseProviderParameters = new PolicyModelsProviderParameters(); - } - return databaseProviderParameters; - } - - /** - * Copies a source file to a target file, replacing occurrances of - * {@link #REST_SERVER_PORT} with the given port number. - * - * @param source source file name - * @param target target file name - * @param port port to be substituted - * @throws IOException if an error occurs - */ - public void makeParameters(String source, String target, int port) throws IOException { - String text = TextFileUtils.getTextFileAsString(source); - text = text.replace(REST_SERVER_PORT, String.valueOf(port)); - - File file = new File(target); - file.deleteOnExit(); - TextFileUtils.putStringAsFile(text, file); - } -} diff --git a/main/src/test/java/org/onap/policy/api/main/parameters/TestApiParameterGroup.java b/main/src/test/java/org/onap/policy/api/main/parameters/TestApiParameterGroup.java deleted file mode 100644 index 28982489..00000000 --- a/main/src/test/java/org/onap/policy/api/main/parameters/TestApiParameterGroup.java +++ /dev/null @@ -1,152 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP Policy API - * ================================================================================ - * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. - * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.api.main.parameters; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import java.util.Collections; -import org.junit.Test; -import org.onap.policy.common.endpoints.parameters.RestServerParameters; -import org.onap.policy.common.parameters.ValidationResult; -import org.onap.policy.models.provider.PolicyModelsProviderParameters; - -/** - * Class to perform unit test of ApiParameterGroup. - * - */ -public class TestApiParameterGroup { - private static final int PORT = 6969; - private CommonTestData commonTestData = new CommonTestData(); - - @Test - public void testApiParameterGroup() { - final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT); - final PolicyModelsProviderParameters databaseProviderParameters = - commonTestData.getDatabaseProviderParameters(false); - final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, - restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final ValidationResult validationResult = apiParameters.validate(); - assertTrue(validationResult.isValid()); - assertEquals(restServerParameters.getHost(), apiParameters.getRestServerParameters().getHost()); - assertEquals(restServerParameters.getPort(), apiParameters.getRestServerParameters().getPort()); - assertEquals(restServerParameters.getUserName(), - apiParameters.getRestServerParameters().getUserName()); - assertEquals(restServerParameters.getPassword(), - apiParameters.getRestServerParameters().getPassword()); - assertEquals(restServerParameters.isHttps(), apiParameters.getRestServerParameters().isHttps()); - assertEquals(restServerParameters.isAaf(), apiParameters.getRestServerParameters().isAaf()); - assertEquals(CommonTestData.API_GROUP_NAME, apiParameters.getName()); - assertTrue(apiParameters.getPreloadPolicyTypes().isEmpty()); - } - - @Test - public void testApiParameterGroup_NullName() { - final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT); - final PolicyModelsProviderParameters databaseProviderParameters = - commonTestData.getDatabaseProviderParameters(false); - final ApiParameterGroup apiParameters = new ApiParameterGroup(null, restServerParameters, - databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final ValidationResult validationResult = apiParameters.validate(); - assertFalse(validationResult.isValid()); - assertEquals(null, apiParameters.getName()); - assertThat(validationResult.getResult()).contains("\"name\" value \"null\" INVALID, is null"); - } - - @Test - public void testApiParameterGroup_EmptyName() { - final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT); - final PolicyModelsProviderParameters databaseProviderParameters = - commonTestData.getDatabaseProviderParameters(false); - final ApiParameterGroup apiParameters = new ApiParameterGroup("", restServerParameters, - databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final ValidationResult validationResult = apiParameters.validate(); - assertFalse(validationResult.isValid()); - assertEquals("", apiParameters.getName()); - assertThat(validationResult.getResult()).contains("\"name\" value \"\" INVALID, is blank"); - } - - @Test - public void testApiParameterGroup_EmptyRestServerParameters() { - final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(true, PORT); - final PolicyModelsProviderParameters databaseProviderParameters = - commonTestData.getDatabaseProviderParameters(false); - final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, - restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final ValidationResult validationResult = apiParameters.validate(); - assertFalse(validationResult.isValid()); - assertThat(validationResult.getResult()) - .contains("\"RestServerParameters\" INVALID, item has status INVALID"); - } - - @Test - public void testApiParameterGroup_NullRestServerParameters() { - final RestServerParameters restServerParameters = null; - final PolicyModelsProviderParameters databaseProviderParameters = - commonTestData.getDatabaseProviderParameters(false); - final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, - restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final ValidationResult validationResult = apiParameters.validate(); - assertFalse(validationResult.isValid()); - assertThat(validationResult.getResult()) - .contains("item \"restServerParameters\" value \"null\" INVALID, is null"); - } - - - @Test - public void testApiParameterGroup_EmptyDatabaseProviderParameters() { - final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT); - final PolicyModelsProviderParameters databaseProviderParameters = - commonTestData.getDatabaseProviderParameters(true); - final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, - restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final ValidationResult validationResult = apiParameters.validate(); - assertFalse(validationResult.isValid()); - assertThat(validationResult.getResult()) - .contains("\"PolicyModelsProviderParameters\" INVALID, item has status INVALID"); - } - - @Test - public void testApiParameterGroup_NullDatabaseProviderParameters() { - final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false, PORT); - final PolicyModelsProviderParameters databaseProviderParameters = null; - final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, - restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final ValidationResult validationResult = apiParameters.validate(); - assertFalse(validationResult.isValid()); - assertThat(validationResult.getResult()) - .contains("item \"databaseProviderParameters\" value \"null\" INVALID, is null"); - } - - @Test - public void testApiParameterGroup_SetName() { - final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, - null, null, Collections.emptyList(), Collections.emptyList()); - assertEquals(CommonTestData.API_GROUP_NAME, apiParameters.getName()); - apiParameters.setName("SampleName"); - assertEquals("SampleName", apiParameters.getName()); - } -} diff --git a/main/src/test/java/org/onap/policy/api/main/parameters/TestApiParameterHandler.java b/main/src/test/java/org/onap/policy/api/main/parameters/TestApiParameterHandler.java deleted file mode 100644 index 26ecd026..00000000 --- a/main/src/test/java/org/onap/policy/api/main/parameters/TestApiParameterHandler.java +++ /dev/null @@ -1,175 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. - * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2022 Nordix Foundation. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.api.main.parameters; - -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import org.junit.Test; -import org.onap.policy.api.main.exception.PolicyApiException; -import org.onap.policy.api.main.startstop.ApiCommandLineArguments; -import org.onap.policy.common.utils.cmd.CommandLineException; - -/** - * Class to perform unit test of ApiParameterHandler. - * - */ -public class TestApiParameterHandler { - @Test - public void testParameterHandlerNoParameterFile() throws PolicyApiException, CommandLineException { - final String[] noArgumentString = {"-c", "parameters/NoParameterFile.json"}; - final ApiCommandLineArguments noArguments = new ApiCommandLineArguments(); - noArguments.parse(noArgumentString); - - try { - new ApiParameterHandler().getParameters(noArguments); - fail("test should throw an exception here"); - } catch (final Exception e) { - assertTrue(e.getMessage().contains("FileNotFoundException")); - } - } - - @Test - public void testParameterHandlerEmptyParameters() throws PolicyApiException, CommandLineException { - final String[] emptyArgumentString = {"-c", "parameters/EmptyParameters.json"}; - final ApiCommandLineArguments emptyArguments = new ApiCommandLineArguments(); - emptyArguments.parse(emptyArgumentString); - - try { - new ApiParameterHandler().getParameters(emptyArguments); - fail("test should throw an exception here"); - } catch (final Exception e) { - assertEquals("no parameters found in \"parameters/EmptyParameters.json\"", e.getMessage()); - } - } - - @Test - public void testParameterHandlerBadParameters() throws PolicyApiException, CommandLineException { - final String[] badArgumentString = {"-c", "parameters/BadParameters.json"}; - final ApiCommandLineArguments badArguments = new ApiCommandLineArguments(); - badArguments.parse(badArgumentString); - - try { - new ApiParameterHandler().getParameters(badArguments); - fail("test should throw an exception here"); - } catch (final Exception e) { - assertEquals("error reading parameters from \"parameters/BadParameters.json\"\n" - + "(JsonSyntaxException):java.lang.IllegalStateException: " - + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name", e.getMessage()); - } - } - - @Test - public void testParameterHandlerInvalidParameters() throws PolicyApiException, CommandLineException { - final String[] invalidArgumentString = {"-c", "parameters/InvalidParameters.json"}; - final ApiCommandLineArguments invalidArguments = new ApiCommandLineArguments(); - invalidArguments.parse(invalidArgumentString); - - try { - new ApiParameterHandler().getParameters(invalidArguments); - fail("test should throw an exception here"); - } catch (final Exception e) { - assertEquals("error reading parameters from \"parameters/InvalidParameters.json\"\n" - + "(JsonSyntaxException):java.lang.IllegalStateException: " - + "Expected a string but was BEGIN_ARRAY at line 2 column 15 path $.name", e.getMessage()); - } - } - - @Test - public void testParameterHandlerNoParameters() throws PolicyApiException, CommandLineException { - final String[] noArgumentString = {"-c", "parameters/NoParameters.json"}; - final ApiCommandLineArguments noArguments = new ApiCommandLineArguments(); - noArguments.parse(noArgumentString); - - assertThatThrownBy(() -> new ApiParameterHandler().getParameters(noArguments)) - .hasMessageContaining("\"name\"", "is null"); - } - - @Test - public void testParameterHandlerMinumumParameters() throws PolicyApiException, CommandLineException { - final String[] minArgumentString = {"-c", "parameters/MinimumParameters.json"}; - final ApiCommandLineArguments minArguments = new ApiCommandLineArguments(); - minArguments.parse(minArgumentString); - final ApiParameterGroup parGroup = new ApiParameterHandler().getParameters(minArguments); - assertEquals(CommonTestData.API_GROUP_NAME, parGroup.getName()); - } - - @Test - public void testApiParameterGroup() throws PolicyApiException, CommandLineException { - final String[] apiConfigParameters = {"-c", "parameters/ApiConfigParameters_Https.json"}; - final ApiCommandLineArguments arguments = new ApiCommandLineArguments(); - arguments.parse(apiConfigParameters); - final ApiParameterGroup parGroup = new ApiParameterHandler().getParameters(arguments); - assertTrue(arguments.checkSetConfigurationFilePath()); - assertEquals(CommonTestData.API_GROUP_NAME, parGroup.getName()); - } - - @Test - public void testApiParameterGroup_Postgres() throws PolicyApiException, CommandLineException { - final String[] apiConfigParameters = {"-c", "parameters/ApiConfigParameters_Postgres.json"}; - final ApiCommandLineArguments arguments = new ApiCommandLineArguments(); - arguments.parse(apiConfigParameters); - final ApiParameterGroup parGroup = new ApiParameterHandler().getParameters(arguments); - assertTrue(arguments.checkSetConfigurationFilePath()); - assertEquals(CommonTestData.API_GROUP_NAME, parGroup.getName()); - } - - @Test - public void testApiParameterGroup_Invalid() throws PolicyApiException, CommandLineException { - final String[] apiConfigParameters = {"-c", "parameters/ApiConfigParameters_InvalidName.json"}; - final ApiCommandLineArguments arguments = new ApiCommandLineArguments(); - arguments.parse(apiConfigParameters); - - assertThatThrownBy(() -> new ApiParameterHandler().getParameters(arguments)).hasMessageContaining("\"name\"", - "is null"); - } - - @Test - public void testApiVersion() throws PolicyApiException, CommandLineException { - final String[] apiConfigParameters = {"-v"}; - final ApiCommandLineArguments arguments = new ApiCommandLineArguments(); - final String version = arguments.parse(apiConfigParameters); - assertTrue(version.startsWith("ONAP Policy Framework Api Service")); - } - - @Test - public void testApiHelp() throws PolicyApiException, CommandLineException { - final String[] apiConfigParameters = {"-h"}; - final ApiCommandLineArguments arguments = new ApiCommandLineArguments(); - final String help = arguments.parse(apiConfigParameters); - assertTrue(help.startsWith("usage:")); - } - - @Test - public void testApiInvalidOption() throws PolicyApiException { - final String[] apiConfigParameters = {"-d"}; - final ApiCommandLineArguments arguments = new ApiCommandLineArguments(); - try { - arguments.parse(apiConfigParameters); - } catch (final Exception exp) { - assertTrue(exp.getMessage().startsWith("invalid command line arguments specified")); - } - } -} diff --git a/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java b/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java index 9f22ff23..ae654c6c 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/TestApiRestServer.java @@ -3,7 +3,7 @@ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2019-2020 Nordix Foundation. - * Modifications Copyright (C) 2020 Bell Canada. + * Modifications Copyright (C) 2020-2022 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,10 +32,8 @@ import static org.junit.Assert.assertNull; import java.io.File; import java.io.IOException; import java.security.SecureRandom; -import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Properties; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.ws.rs.client.Client; @@ -47,34 +45,40 @@ import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import org.glassfish.jersey.client.ClientProperties; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; -import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; -import org.onap.policy.api.main.parameters.ApiParameterGroup; -import org.onap.policy.api.main.parameters.CommonTestData; -import org.onap.policy.api.main.rest.provider.PolicyProvider; -import org.onap.policy.api.main.rest.provider.PolicyTypeProvider; -import org.onap.policy.api.main.startstop.Main; +import org.junit.runner.RunWith; +import org.onap.policy.api.main.PolicyApiApplication; import org.onap.policy.common.endpoints.http.server.YamlMessageBodyHandler; import org.onap.policy.common.endpoints.report.HealthCheckReport; import org.onap.policy.common.gson.GsonMessageBodyHandler; -import org.onap.policy.common.parameters.ParameterService; import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.common.utils.coder.StandardYamlCoder; import org.onap.policy.common.utils.network.NetworkUtil; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.common.utils.resources.TextFileUtils; import org.onap.policy.common.utils.security.SelfSignedKeyStore; -import org.onap.policy.models.base.PfModelException; import org.onap.policy.models.errors.concepts.ErrorResponse; -import org.onap.policy.models.provider.PolicyModelsProviderParameters; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; +import org.springframework.test.context.junit4.SpringRunner; /** * Class to perform unit test of {@link ApiRestController}. * * @author Chenfei Gao (cgao@research.att.com) */ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = PolicyApiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@ActiveProfiles("test") +@DirtiesContext(classMode = ClassMode.AFTER_CLASS) public class TestApiRestServer { private static final String ALIVE = "alive"; @@ -156,70 +160,37 @@ public class TestApiRestServer { "policies/vCPE.policy.operational.input.tosca.yaml"; private static final String POLICIES_VCPE_VERSION1 = "policies/onap.restart.tca/versions/1.0.0"; - - private static PolicyModelsProviderParameters providerParams; - private static ApiParameterGroup apiParamGroup; - private static PolicyProvider policyProvider; - private static PolicyTypeProvider policyTypeProvider; - // @formatter:on private static final StandardCoder standardCoder = new StandardCoder(); + private static StandardYamlCoder standardYamlCoder = new StandardYamlCoder(); + private static SelfSignedKeyStore keystore; - private static int apiPort; - private static Main apiMain; + @LocalServerPort + private int apiPort; - private static StandardYamlCoder standardYamlCoder = new StandardYamlCoder(); + @Autowired + private ApiStatisticsManager mgr; /** * Initializes parameters and set up test environment. * - * @throws PfModelException the PfModel parsing exception * @throws IOException on I/O exceptions * @throws InterruptedException if interrupted */ @BeforeClass - public static void setupParameters() throws PfModelException, IOException, InterruptedException { - providerParams = new PolicyModelsProviderParameters(); - // H2, use "org.mariadb.jdbc.Driver" and "jdbc:mariadb://localhost:3306/policy" for locally installed MariaDB - providerParams.setDatabaseDriver("org.h2.Driver"); - providerParams.setDatabaseUrl("jdbc:h2:mem:testdb"); - providerParams.setDatabaseUser("policy"); - providerParams.setDatabasePassword("P01icY"); - providerParams.setPersistenceUnit("ToscaConceptTest"); - apiParamGroup = new ApiParameterGroup("ApiGroup", null, providerParams, Collections.emptyList(), - Collections.emptyList()); - ParameterService.register(apiParamGroup, true); - - policyTypeProvider = new PolicyTypeProvider(); - policyProvider = new PolicyProvider(); - - apiPort = NetworkUtil.allocPort(); - - final String[] apiConfigParameters = new String[2]; - final Properties systemProps = System.getProperties(); - systemProps.put("javax.net.ssl.keyStore", new SelfSignedKeyStore().getKeystoreName()); - systemProps.put("javax.net.ssl.keyStorePassword", SelfSignedKeyStore.KEYSTORE_PASSWORD); - System.setProperties(systemProps); - new CommonTestData().makeParameters("src/test/resources/parameters/ApiConfigParameters_Https.json", - "src/test/resources/parameters/ApiConfigParameters_HttpsXXX.json", apiPort); - apiConfigParameters[0] = "-c"; - apiConfigParameters[1] = "src/test/resources/parameters/ApiConfigParameters_HttpsXXX.json"; - - apiMain = new Main(apiConfigParameters); + public static void setupParameters() throws IOException, InterruptedException { + keystore = new SelfSignedKeyStore(); } - /** - * Method for cleanup after each test. - */ - @AfterClass - public static void teardown() throws Exception { - policyTypeProvider.close(); - policyProvider.close(); - - if (apiMain != null) { - apiMain.shutdown(); - } + @DynamicPropertySource + static void registerPgProperties(DynamicPropertyRegistry registry) { + registry.add("server.ssl.enabled", () -> "true"); + registry.add("server.ssl.key-store", () -> keystore.getKeystoreName()); + registry.add("server.ssl.key-store-password", () -> SelfSignedKeyStore.KEYSTORE_PASSWORD); + registry.add("server.ssl.key-store-type", () -> "PKCS12"); + registry.add("server.ssl.key-alias", () -> "policy@policy.onap.org"); + registry.add("server.ssl.key-password", () -> SelfSignedKeyStore.PRIVATE_KEY_PASSWORD); } @Test @@ -378,7 +349,7 @@ public class TestApiRestServer { invocationBuilder = sendHttpsRequest(STATISTICS_ENDPOINT, mediaType); report = invocationBuilder.get(StatisticsReport.class); validateStatisticsReport(report, 200); - ApiStatisticsManager.resetAllStatistics(); + // ApiStatisticsManager.resetAllStatistics(); } @Test @@ -798,8 +769,6 @@ public class TestApiRestServer { } private void updateApiStatistics() { - var mgr = ApiStatisticsManager.getInstance(); - mgr.updateTotalApiCallCount(); mgr.updateApiCallSuccessCount(); mgr.updateApiCallFailureCount(); @@ -831,4 +800,4 @@ public class TestApiRestServer { assertEquals(code, report.getCode()); assertEquals(message, report.getMessage()); } -} +}
\ No newline at end of file diff --git a/main/src/test/java/org/onap/policy/api/main/rest/TestApiStatisticsManager.java b/main/src/test/java/org/onap/policy/api/main/rest/TestApiStatisticsManager.java index 5f5c586d..bc67d21c 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/TestApiStatisticsManager.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/TestApiStatisticsManager.java @@ -3,7 +3,7 @@ * ONAP Policy API * ================================================================================ * Copyright (C) 2019 IBM. - * Modifications Copyright (C) 2020 Bell Canada. + * Modifications Copyright (C) 2020-2022 Bell Canada. * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -27,13 +27,23 @@ package org.onap.policy.api.main.rest; import static org.junit.Assert.assertEquals; import org.junit.Test; +import org.junit.runner.RunWith; +import org.onap.policy.api.main.PolicyApiApplication; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; +@RunWith(SpringRunner.class) +@SpringBootTest(classes = PolicyApiApplication.class) +@ActiveProfiles("test") public class TestApiStatisticsManager { + @Autowired + private ApiStatisticsManager mgr = new ApiStatisticsManager(); + @Test public void testUpdateMethods() { - var mgr = new ApiStatisticsManager(); - assertEquals(1, mgr.updateTotalApiCallCount()); assertEquals(1, mgr.updateApiCallSuccessCount()); assertEquals(1, mgr.updateApiCallFailureCount()); @@ -56,4 +66,4 @@ public class TestApiStatisticsManager { assertEquals(1, mgr.updatePolicyTypeDeleteSuccessCount()); assertEquals(1, mgr.updatePolicyTypeDeleteFailureCount()); } -} +}
\ No newline at end of file diff --git a/main/src/test/java/org/onap/policy/api/main/rest/TestCommonRestController.java b/main/src/test/java/org/onap/policy/api/main/rest/TestCommonRestController.java index dc921488..2213bbf9 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/TestCommonRestController.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/TestCommonRestController.java @@ -4,6 +4,7 @@ * ================================================================================ * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2019 Nordix Foundation. + * Modifications Copyright (C) 2022 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,13 +24,12 @@ package org.onap.policy.api.main.rest; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertSame; import java.util.UUID; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.ResponseBuilder; import org.junit.Test; +import org.springframework.http.ResponseEntity; /** * Class to perform unit testing of CommonRestController. @@ -40,9 +40,8 @@ public class TestCommonRestController { @Test public void testAddLoggingHeaders() { UUID requestId = UUID.randomUUID(); - ResponseBuilder rb = - crc.addLoggingHeaders(crc.addVersionControlHeaders(Response.status(Response.Status.OK)), requestId); - assertSame(rb, rb.header("X-ONAP-RequestID", requestId)); + ResponseEntity<Void> rb = crc.makeOkResponse(requestId, null); + assertEquals(requestId.toString(), rb.getHeaders().getFirst("X-ONAP-RequestID")); } /* @@ -52,4 +51,4 @@ public class TestCommonRestController { public void testToJsonNull() { assertNull(crc.toJson(null)); } -} +}
\ No newline at end of file diff --git a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java index e47a4ce6..ad394e33 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyProvider.java @@ -4,7 +4,7 @@ * ================================================================================ * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2019-2021 Nordix Foundation. - * Modifications Copyright (C) 2020 Bell Canada. + * Modifications Copyright (C) 2020,2022 Bell Canada. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,13 +33,11 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import java.util.ArrayList; -import java.util.Collections; import java.util.List; -import org.junit.After; -import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; -import org.onap.policy.api.main.parameters.ApiParameterGroup; -import org.onap.policy.common.parameters.ParameterService; +import org.junit.runner.RunWith; +import org.onap.policy.api.main.PolicyApiApplication; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.common.utils.coder.StandardYamlCoder; @@ -52,24 +50,30 @@ import org.onap.policy.models.pdp.concepts.PdpSubGroup; import org.onap.policy.models.pdp.enums.PdpHealthStatus; import org.onap.policy.models.pdp.enums.PdpState; import org.onap.policy.models.provider.PolicyModelsProvider; -import org.onap.policy.models.provider.PolicyModelsProviderFactory; -import org.onap.policy.models.provider.PolicyModelsProviderParameters; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; /** * This class performs unit test of {@link PolicyProvider}. * * @author Chenfei Gao (cgao@research.att.com) */ +// Provider classes will be obsolete upon migration to Hibernate +@Ignore +@RunWith(SpringRunner.class) +@SpringBootTest(classes = PolicyApiApplication.class, properties = {"database.initialize=false"}) +@ActiveProfiles("test") +@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD) public class TestPolicyProvider { - private static PolicyProvider policyProvider; - private static PolicyTypeProvider policyTypeProvider; - private static PolicyModelsProviderParameters providerParams; - private static ApiParameterGroup apiParamGroup; - private static StandardCoder standardCoder; - private static StandardYamlCoder standardYamlCoder; + private static StandardCoder standardCoder = new StandardCoder(); + private static StandardYamlCoder standardYamlCoder = new StandardYamlCoder(); private static final String POLICY_RESOURCE = "policies/vCPE.policy.monitoring.input.tosca.json"; private static final String POLICY_TYPE_RESOURCE = "policytypes/onap.policies.monitoring.tcagen2.yaml"; @@ -88,41 +92,12 @@ public class TestPolicyProvider { private static final String POLICY_RESOURCE_OPERATIONAL = "policies/vCPE.policy.operational.input.tosca.json"; private static final String POLICY_TYPE_OPERATIONAL_DROOLS = "onap.policies.controlloop.operational.common.Drools"; - /** - * Initializes parameters. - * - * @throws PfModelException the PfModel parsing exception - */ - @Before - public void setupParameters() throws PfModelException { - - standardCoder = new StandardCoder(); - standardYamlCoder = new StandardYamlCoder(); - providerParams = new PolicyModelsProviderParameters(); - providerParams.setDatabaseDriver("org.h2.Driver"); - providerParams.setDatabaseUrl("jdbc:h2:mem:testdb"); - providerParams.setDatabaseUser("policy"); - providerParams.setDatabasePassword("P01icY"); - providerParams.setPersistenceUnit("ToscaConceptTest"); - apiParamGroup = new ApiParameterGroup("ApiGroup", null, providerParams, Collections.emptyList(), - Collections.emptyList()); - ParameterService.register(apiParamGroup, true); - policyTypeProvider = new PolicyTypeProvider(); - policyProvider = new PolicyProvider(); - } - - /** - * Closes up DB connections and deregisters API parameter group. - * - * @throws PfModelException the PfModel parsing exception - */ - @After - public void tearDown() throws PfModelException { - - policyTypeProvider.close(); - policyProvider.close(); - ParameterService.deregister(apiParamGroup); - } + @Autowired + private PolicyProvider policyProvider; + @Autowired + private PolicyTypeProvider policyTypeProvider; + @Autowired + private PolicyModelsProvider databaseProvider; @Test public void testFetchPolicies() { @@ -159,8 +134,7 @@ public class TestPolicyProvider { String policyTypeVersion = "1.0.0"; String policyTypeId = "onap.policies.monitoring.cdap.tca.hi.lo.app"; - try (PolicyModelsProvider databaseProvider = - new PolicyModelsProviderFactory().createPolicyModelsProvider(providerParams)) { + try { assertEquals(0, databaseProvider.getPdpGroups("name").size()); assertEquals(0, databaseProvider.getFilteredPdpGroups(PdpGroupFilter.builder().build()).size()); @@ -511,4 +485,4 @@ public class TestPolicyProvider { assertThatThrownBy(() -> policyProvider.deletePolicy(null, null, "onap.restart.tca.unavailable", "1.0.0")) .hasMessageContaining("not found"); } -} +}
\ No newline at end of file diff --git a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java index 355f3d45..6b7630c7 100644 --- a/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java +++ b/main/src/test/java/org/onap/policy/api/main/rest/provider/TestPolicyTypeProvider.java @@ -4,7 +4,7 @@ * ================================================================================ * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2019-2021 Nordix Foundation. - * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. + * Modifications Copyright (C) 2020-2022 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,32 +29,43 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; -import java.util.Collections; -import org.junit.AfterClass; -import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; -import org.onap.policy.api.main.parameters.ApiParameterGroup; -import org.onap.policy.common.parameters.ParameterService; +import org.junit.runner.RunWith; +import org.onap.policy.api.main.PolicyApiApplication; import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardYamlCoder; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.models.base.PfModelException; -import org.onap.policy.models.provider.PolicyModelsProviderParameters; import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicyType; import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.annotation.DirtiesContext.ClassMode; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; /** * This class performs unit test of {@link PolicyTypeProvider}. * * @author Chenfei Gao (cgao@research.att.com) */ +// Provider classes will be obsolete upon migration to Hibernate +@Ignore +@RunWith(SpringRunner.class) +@SpringBootTest(classes = PolicyApiApplication.class, properties = {"database.initialize=false"}) +@ActiveProfiles("test") +@DirtiesContext(classMode = ClassMode.AFTER_CLASS) public class TestPolicyTypeProvider { - private static PolicyTypeProvider policyTypeProvider; - private static PolicyProvider policyProvider; - private static PolicyModelsProviderParameters providerParams; - private static ApiParameterGroup apiParamGroup; - private static StandardYamlCoder standardYamlCoder; + private static StandardYamlCoder standardYamlCoder = new StandardYamlCoder(); + + @Autowired + private PolicyProvider policyProvider; + + @Autowired + private PolicyTypeProvider policyTypeProvider; private static final String POLICY_TYPE_VERSION = "1.0.0"; @@ -74,41 +85,6 @@ public class TestPolicyTypeProvider { private static final String POLICY_TYPE_OPERATIONAL_APEX = "onap.policies.controlloop.operational.common.Apex"; private static final String POLICY_TYPE_OPERATIONAL_DROOLS = "onap.policies.controlloop.operational.common.Drools"; - /** - * Initializes parameters. - * - * @throws PfModelException the PfModel parsing exception - */ - @BeforeClass - public static void setupParameters() throws PfModelException { - - standardYamlCoder = new StandardYamlCoder(); - providerParams = new PolicyModelsProviderParameters(); - providerParams.setDatabaseDriver("org.h2.Driver"); - providerParams.setDatabaseUrl("jdbc:h2:mem:testdb"); - providerParams.setDatabaseUser("policy"); - providerParams.setDatabasePassword("P01icY"); - providerParams.setPersistenceUnit("ToscaConceptTest"); - apiParamGroup = new ApiParameterGroup("ApiGroup", null, providerParams, Collections.emptyList(), - Collections.emptyList()); - ParameterService.register(apiParamGroup, true); - policyTypeProvider = new PolicyTypeProvider(); - policyProvider = new PolicyProvider(); - } - - /** - * Closes up DB connections and deregisters API parameter group. - * - * @throws PfModelException the PfModel parsing exception - */ - @AfterClass - public static void tearDown() throws PfModelException { - - policyTypeProvider.close(); - policyProvider.close(); - ParameterService.deregister(apiParamGroup); - } - @Test public void testFetchPolicyTypes() throws Exception { @@ -220,4 +196,4 @@ public class TestPolicyTypeProvider { policyTypeProvider.deletePolicyType("onap.policies.monitoring.tcagen2", "1.0.0"); }).hasMessage("policy type onap.policies.monitoring.tcagen2:1.0.0 not found"); } -} +}
\ No newline at end of file diff --git a/main/src/test/java/org/onap/policy/api/main/startstop/ApiDatabaseInitializerTest.java b/main/src/test/java/org/onap/policy/api/main/startstop/ApiDatabaseInitializerTest.java index f7e43b8d..aa86d739 100644 --- a/main/src/test/java/org/onap/policy/api/main/startstop/ApiDatabaseInitializerTest.java +++ b/main/src/test/java/org/onap/policy/api/main/startstop/ApiDatabaseInitializerTest.java @@ -3,6 +3,7 @@ * ONAP * ================================================================================ * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2022 Bell Canada. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,54 +22,36 @@ package org.onap.policy.api.main.startstop; import static org.assertj.core.api.Assertions.assertThatCode; -import static org.junit.Assert.fail; -import java.io.File; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.junit.Test; -import org.onap.policy.api.main.exception.PolicyApiException; -import org.onap.policy.api.main.parameters.ApiParameterGroup; -import org.onap.policy.api.main.parameters.CommonTestData; -import org.onap.policy.common.parameters.ValidationResult; -import org.onap.policy.common.utils.coder.StandardCoder; -import org.onap.policy.models.provider.PolicyModelsProvider; -import org.onap.policy.models.provider.PolicyModelsProviderFactory; - +import org.junit.runner.RunWith; +import org.onap.policy.api.main.PolicyApiApplication; +import org.onap.policy.api.main.config.PolicyPreloadConfig; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = PolicyApiApplication.class) +@ActiveProfiles("test") +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS) public class ApiDatabaseInitializerTest { - private static final String PARAM_FILE = "src/test/resources/parameters/ApiConfigParameters_Https.json"; - private static final CommonTestData COMMON_TEST_DATA = new CommonTestData(); - private static ApiParameterGroup params; - private static PolicyModelsProvider provider; - - /** - * Creates the DB and keeps it open. - */ - @BeforeClass - public static void setUpBeforeClass() throws Exception { - COMMON_TEST_DATA.makeParameters(PARAM_FILE, "src/test/resources/parameters/ApiConfigParametersXXX.json", 6969); - params = new StandardCoder().decode(new File(PARAM_FILE), ApiParameterGroup.class); - ValidationResult result = params.validate(); - if (!result.isValid()) { - fail(result.getResult()); - } + @Autowired + private PolicyPreloadConfig params; - // keep the DB open until the test completes - provider = new PolicyModelsProviderFactory().createPolicyModelsProvider(params.getDatabaseProviderParameters()); - } - - @AfterClass - public static void tearDownAfterClass() throws Exception { - provider.close(); - } + @Autowired + private ApiDatabaseInitializer adi; @Test - public void testInitializeApiDatabase() throws PolicyApiException { - ApiDatabaseInitializer adi = new ApiDatabaseInitializer(); - assertThatCode(() -> adi.initializeApiDatabase(params)).doesNotThrowAnyException(); + public void testInitializeApiDatabase() { + assertThatCode(() -> adi.initializeApiDatabase(params.getPolicyTypes(), + params.getPolicies())).doesNotThrowAnyException(); // invoke it again - should still be OK - assertThatCode(() -> adi.initializeApiDatabase(params)).doesNotThrowAnyException(); + assertThatCode(() -> adi.initializeApiDatabase(params.getPolicyTypes(), + params.getPolicies())).doesNotThrowAnyException(); } -} +}
\ No newline at end of file diff --git a/main/src/test/java/org/onap/policy/api/main/startstop/TestApiActivator.java b/main/src/test/java/org/onap/policy/api/main/startstop/TestApiActivator.java deleted file mode 100644 index ccd0f14d..00000000 --- a/main/src/test/java/org/onap/policy/api/main/startstop/TestApiActivator.java +++ /dev/null @@ -1,54 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. - * Modifications Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2021 Bell Canada. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.api.main.startstop; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.onap.policy.api.main.parameters.ApiParameterGroup; -import org.onap.policy.api.main.parameters.ApiParameterHandler; -import org.onap.policy.api.main.parameters.CommonTestData; -import org.onap.policy.common.utils.network.NetworkUtil; - -/** - * Class to perform unit test of ApiActivator. - * - */ -public class TestApiActivator { - private static final CommonTestData COMMON_TEST_DATA = new CommonTestData(); - - @Test - public void testApiActivator() throws Exception { - COMMON_TEST_DATA.makeParameters("src/test/resources/parameters/ApiConfigParameters_Https.json", - "src/test/resources/parameters/ApiConfigParametersXXX.json", NetworkUtil.allocPort()); - final String[] apiConfigParameters = {"-c", "src/test/resources/parameters/ApiConfigParametersXXX.json"}; - final ApiCommandLineArguments arguments = new ApiCommandLineArguments(apiConfigParameters); - final ApiParameterGroup parGroup = new ApiParameterHandler().getParameters(arguments); - final ApiActivator activator = new ApiActivator(parGroup); - activator.initialize(); - assertTrue(activator.getParameterGroup().isValid()); - assertEquals(CommonTestData.API_GROUP_NAME, activator.getParameterGroup().getName()); - activator.terminate(); - } -} diff --git a/main/src/test/java/org/onap/policy/api/main/startstop/TestApiCommandLineArguments.java b/main/src/test/java/org/onap/policy/api/main/startstop/TestApiCommandLineArguments.java deleted file mode 100644 index 8d3c42c9..00000000 --- a/main/src/test/java/org/onap/policy/api/main/startstop/TestApiCommandLineArguments.java +++ /dev/null @@ -1,68 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP Policy API - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2021 Nordix Foundation. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.api.main.startstop; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.assertThatThrownBy; - -import org.junit.Test; -import org.onap.policy.api.main.exception.PolicyApiRuntimeException; - -public class TestApiCommandLineArguments { - private ApiCommandLineArguments apiCmdArgs = new ApiCommandLineArguments(); - - @Test(expected = PolicyApiRuntimeException.class) - public void testApiCommandLineArgumentsStringArray() { - String[] args = {"---d"}; - new ApiCommandLineArguments(args); - } - - @Test - public void testNonExistentFileValidateReadableFile() { - apiCmdArgs.setConfigurationFilePath("src/test/resources/filetest/nonexist.json "); - assertThatThrownBy(apiCmdArgs::validate) - .hasMessageContaining("file \"src/test/resources/filetest/nonexist.json \" does not exist"); - } - - @Test - public void testEmptyFileNameValidateReadableFile() { - apiCmdArgs.setConfigurationFilePath(""); - assertThatThrownBy(apiCmdArgs::validate) - .hasMessageContaining("policy-api configuration file was not specified as an argument"); - } - - @Test - public void testInvalidUrlValidateReadableFile() { - apiCmdArgs.setConfigurationFilePath("src/test\\resources/filetest\\n"); - assertThatThrownBy(apiCmdArgs::validate).hasMessageContaining( - "policy-api configuration file \"src/test\\resources/filetest\\n\" does not exist"); - } - - @Test - public void testVersion() { - String[] testArgs = {"-v"}; - ApiCommandLineArguments cmdArgs = new ApiCommandLineArguments(testArgs); - assertThat(cmdArgs.version()).startsWith("ONAP Policy Framework Api Service"); - } -} diff --git a/main/src/test/java/org/onap/policy/api/main/startstop/TestMain.java b/main/src/test/java/org/onap/policy/api/main/startstop/TestMain.java deleted file mode 100644 index 6c8c514d..00000000 --- a/main/src/test/java/org/onap/policy/api/main/startstop/TestMain.java +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. - * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2020-2021 Bell Canada. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.api.main.startstop; - -import static org.assertj.core.api.Assertions.assertThatCode; -import static org.assertj.core.api.Assertions.assertThatThrownBy; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.onap.policy.api.main.exception.PolicyApiRuntimeException; -import org.onap.policy.api.main.parameters.CommonTestData; -import org.onap.policy.common.utils.network.NetworkUtil; -import org.onap.policy.common.utils.resources.MessageConstants; - -/** - * Class to perform unit test of Main. - * - */ -public class TestMain { - private static final CommonTestData COMMON_TEST_DATA = new CommonTestData(); - - @Test - public void testMain() throws Exception { - COMMON_TEST_DATA.makeParameters("src/test/resources/parameters/ApiConfigParameters_Https.json", - "src/test/resources/parameters/ApiConfigParametersXXX.json", NetworkUtil.allocPort()); - final String[] apiConfigParameters = {"-c", "src/test/resources/parameters/ApiConfigParametersXXX.json"}; - final Main main = new Main(apiConfigParameters); - assertTrue(main.getParameterGroup().isValid()); - assertEquals(CommonTestData.API_GROUP_NAME, main.getParameterGroup().getName()); - main.shutdown(); - } - - @Test - public void testMain_NoArguments() { - final String[] apiConfigParameters = {}; - assertThatThrownBy(() -> new Main(apiConfigParameters)).isInstanceOf(PolicyApiRuntimeException.class) - .hasMessage(String.format(MessageConstants.START_FAILURE_MSG, MessageConstants.POLICY_API)); - } - - @Test - public void testMain_InvalidArguments() { - final String[] apiConfigParameters = {"parameters/ApiConfigParameters.json"}; - assertThatThrownBy(() -> new Main(apiConfigParameters)).isInstanceOf(PolicyApiRuntimeException.class) - .hasMessage(String.format(MessageConstants.START_FAILURE_MSG, MessageConstants.POLICY_API)); - } - - @Test - public void testMain_Help() { - final String[] apiConfigParameters = {"-h"}; - assertThatCode(() -> Main.main(apiConfigParameters)).doesNotThrowAnyException(); - } - - @Test - public void testMain_InvalidParameters() { - final String[] apiConfigParameters = {"-c", "parameters/ApiConfigParameters_InvalidName.json"}; - assertThatThrownBy(() -> new Main(apiConfigParameters)).isInstanceOf(PolicyApiRuntimeException.class) - .hasMessage(String.format(MessageConstants.START_FAILURE_MSG, MessageConstants.POLICY_API)); - } -} |