diff options
Diffstat (limited to 'main/src')
6 files changed, 47 insertions, 117 deletions
diff --git a/main/src/main/java/org/onap/policy/api/main/parameters/ApiParameterGroup.java b/main/src/main/java/org/onap/policy/api/main/parameters/ApiParameterGroup.java index c063d60e..c9b96e36 100644 --- a/main/src/main/java/org/onap/policy/api/main/parameters/ApiParameterGroup.java +++ b/main/src/main/java/org/onap/policy/api/main/parameters/ApiParameterGroup.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. + * Modifications Copyright (C) 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. @@ -22,12 +23,11 @@ package org.onap.policy.api.main.parameters; import java.util.List; import lombok.Getter; -import lombok.Setter; import org.onap.policy.common.endpoints.parameters.RestServerParameters; -import org.onap.policy.common.parameters.GroupValidationResult; -import org.onap.policy.common.parameters.ParameterGroup; -import org.onap.policy.common.parameters.ValidationStatus; -import org.onap.policy.common.utils.validation.ParameterValidationUtils; +import org.onap.policy.common.parameters.ParameterGroupImpl; +import org.onap.policy.common.parameters.annotations.NotBlank; +import org.onap.policy.common.parameters.annotations.NotNull; +import org.onap.policy.common.parameters.annotations.Valid; import org.onap.policy.models.provider.PolicyModelsProviderParameters; /** @@ -35,14 +35,14 @@ import org.onap.policy.models.provider.PolicyModelsProviderParameters; * */ @Getter -public class ApiParameterGroup implements ParameterGroup { +public class ApiParameterGroup extends ParameterGroupImpl { - @Setter - private String name; + @NotNull @Valid private final RestServerParameters restServerParameters; + @NotNull @Valid private final PolicyModelsProviderParameters databaseProviderParameters; - private final List<String> preloadPolicyTypes; - private final List<String> preloadPolicies; + private final List<@NotNull @NotBlank String> preloadPolicyTypes; + private final List<@NotNull @NotBlank String> preloadPolicies; /** * Create the api parameter group. @@ -56,36 +56,10 @@ public class ApiParameterGroup implements ParameterGroup { public ApiParameterGroup(final String name, final RestServerParameters restServerParameters, final PolicyModelsProviderParameters databaseProviderParameters, final List<String> preloadPolicyTypes, final List<String> preloadPolicies) { - this.name = name; + super(name); this.restServerParameters = restServerParameters; this.databaseProviderParameters = databaseProviderParameters; this.preloadPolicyTypes = preloadPolicyTypes; this.preloadPolicies = preloadPolicies; } - - /** - * Validate the parameter group. - * - * @return the result of the validation - */ - @Override - public GroupValidationResult validate() { - final GroupValidationResult validationResult = new GroupValidationResult(this); - if (!ParameterValidationUtils.validateStringParameter(name)) { - validationResult.setResult("name", ValidationStatus.INVALID, "must be a non-blank string"); - } - if (restServerParameters == null) { - validationResult.setResult("restServerParameters", ValidationStatus.INVALID, - "must have restServerParameters to configure api rest server"); - } else { - validationResult.setResult("restServerParameters", restServerParameters.validate()); - } - if (databaseProviderParameters == null) { - validationResult.setResult("databaseProviderParameters", ValidationStatus.INVALID, - "must have databaseProviderParameters to configure api rest server"); - } else { - validationResult.setResult("databaseProviderParameters", databaseProviderParameters.validate()); - } - return validationResult; - } } diff --git a/main/src/main/java/org/onap/policy/api/main/parameters/ApiParameterHandler.java b/main/src/main/java/org/onap/policy/api/main/parameters/ApiParameterHandler.java index b660b883..813dd75e 100644 --- a/main/src/main/java/org/onap/policy/api/main/parameters/ApiParameterHandler.java +++ b/main/src/main/java/org/onap/policy/api/main/parameters/ApiParameterHandler.java @@ -1,9 +1,9 @@ /*- * ============LICENSE_START======================================================= - * ONAP Policy API - * ================================================================================ + * ONAP Policy API + * ================================================================================ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. - * Copyright (C) 2019 AT&T Intellectual Property. 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. @@ -28,7 +28,7 @@ import com.google.gson.GsonBuilder; import java.io.FileReader; import org.onap.policy.api.main.exception.PolicyApiException; import org.onap.policy.api.main.startstop.ApiCommandLineArguments; -import org.onap.policy.common.parameters.GroupValidationResult; +import org.onap.policy.common.parameters.ValidationResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory; public class ApiParameterHandler { private static final Logger LOGGER = LoggerFactory.getLogger(ApiParameterHandler.class); - + /** * Read the parameters from the parameter file. * @@ -70,7 +70,7 @@ public class ApiParameterHandler { } // validate the parameters - final GroupValidationResult validationResult = apiParameterGroup.validate(); + final ValidationResult validationResult = apiParameterGroup.validate(); if (!validationResult.isValid()) { String returnMessage = "validation error(s) on parameters from \"" + arguments.getConfigurationFilePath() + "\"\n"; 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 index 74562260..28982489 100644 --- 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 @@ -3,7 +3,7 @@ * ONAP Policy API * ================================================================================ * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. - * Copyright (C) 2019 AT&T Intellectual Property. 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. @@ -23,6 +23,7 @@ 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; @@ -30,7 +31,7 @@ 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.GroupValidationResult; +import org.onap.policy.common.parameters.ValidationResult; import org.onap.policy.models.provider.PolicyModelsProviderParameters; /** @@ -48,7 +49,7 @@ public class TestApiParameterGroup { commonTestData.getDatabaseProviderParameters(false); final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final GroupValidationResult validationResult = apiParameters.validate(); + final ValidationResult validationResult = apiParameters.validate(); assertTrue(validationResult.isValid()); assertEquals(restServerParameters.getHost(), apiParameters.getRestServerParameters().getHost()); assertEquals(restServerParameters.getPort(), apiParameters.getRestServerParameters().getPort()); @@ -69,12 +70,10 @@ public class TestApiParameterGroup { commonTestData.getDatabaseProviderParameters(false); final ApiParameterGroup apiParameters = new ApiParameterGroup(null, restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final GroupValidationResult validationResult = apiParameters.validate(); + final ValidationResult validationResult = apiParameters.validate(); assertFalse(validationResult.isValid()); assertEquals(null, apiParameters.getName()); - assertTrue(validationResult.getResult() - .contains("field \"name\" type \"java.lang.String\" value \"null\" INVALID, " - + "must be a non-blank string")); + assertThat(validationResult.getResult()).contains("\"name\" value \"null\" INVALID, is null"); } @Test @@ -84,11 +83,10 @@ public class TestApiParameterGroup { commonTestData.getDatabaseProviderParameters(false); final ApiParameterGroup apiParameters = new ApiParameterGroup("", restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final GroupValidationResult validationResult = apiParameters.validate(); + final ValidationResult validationResult = apiParameters.validate(); assertFalse(validationResult.isValid()); assertEquals("", apiParameters.getName()); - assertTrue(validationResult.getResult().contains("field \"name\" type \"java.lang.String\" value \"\" INVALID, " - + "must be a non-blank string")); + assertThat(validationResult.getResult()).contains("\"name\" value \"\" INVALID, is blank"); } @Test @@ -98,11 +96,10 @@ public class TestApiParameterGroup { commonTestData.getDatabaseProviderParameters(false); final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final GroupValidationResult validationResult = apiParameters.validate(); + final ValidationResult validationResult = apiParameters.validate(); assertFalse(validationResult.isValid()); - assertTrue(validationResult.getResult() - .contains("\"org.onap.policy.common.endpoints.parameters.RestServerParameters\" INVALID, " - + "parameter group has status INVALID")); + assertThat(validationResult.getResult()) + .contains("\"RestServerParameters\" INVALID, item has status INVALID"); } @Test @@ -112,10 +109,10 @@ public class TestApiParameterGroup { commonTestData.getDatabaseProviderParameters(false); final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final GroupValidationResult validationResult = apiParameters.validate(); + final ValidationResult validationResult = apiParameters.validate(); assertFalse(validationResult.isValid()); - assertTrue(validationResult.getResult() - .contains("must have restServerParameters to configure api rest server")); + assertThat(validationResult.getResult()) + .contains("item \"restServerParameters\" value \"null\" INVALID, is null"); } @@ -126,11 +123,10 @@ public class TestApiParameterGroup { commonTestData.getDatabaseProviderParameters(true); final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final GroupValidationResult validationResult = apiParameters.validate(); + final ValidationResult validationResult = apiParameters.validate(); assertFalse(validationResult.isValid()); - assertTrue(validationResult.getResult() - .contains("\"org.onap.policy.models.provider.PolicyModelsProviderParameters\" INVALID, " - + "parameter group has status INVALID")); + assertThat(validationResult.getResult()) + .contains("\"PolicyModelsProviderParameters\" INVALID, item has status INVALID"); } @Test @@ -139,10 +135,10 @@ public class TestApiParameterGroup { final PolicyModelsProviderParameters databaseProviderParameters = null; final ApiParameterGroup apiParameters = new ApiParameterGroup(CommonTestData.API_GROUP_NAME, restServerParameters, databaseProviderParameters, Collections.emptyList(), Collections.emptyList()); - final GroupValidationResult validationResult = apiParameters.validate(); + final ValidationResult validationResult = apiParameters.validate(); assertFalse(validationResult.isValid()); - assertTrue(validationResult.getResult() - .contains("must have databaseProviderParameters to configure api rest server")); + assertThat(validationResult.getResult()) + .contains("item \"databaseProviderParameters\" value \"null\" INVALID, is null"); } @Test 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 index 5e1b7eb2..5443e8c6 100644 --- 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 @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved. - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019, 2021 AT&T Intellectual Property. All rights reserved. * Modifications Copyright (C) 2021 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -22,13 +22,11 @@ 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 java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Paths; import org.junit.Test; import org.onap.policy.api.main.exception.PolicyApiException; import org.onap.policy.api.main.startstop.ApiCommandLineArguments; @@ -105,16 +103,8 @@ public class TestApiParameterHandler { final ApiCommandLineArguments noArguments = new ApiCommandLineArguments(); noArguments.parse(noArgumentString); - try { - new ApiParameterHandler().getParameters(noArguments); - fail("test should throw an exception here"); - } catch (final Exception e) { - String expMsg = "validation error(s) on parameters from \"parameters/NoParameters.json\"\nparameter group " - + "\"null\" type \"org.onap.policy.api.main.parameters.ApiParameterGroup\" INVALID, parameter " - + "group has status INVALID\n" - + " field \"name\" type \"java.lang.String\" value \"null\" INVALID, must be a non-blank string\n"; - assertEquals(expMsg, e.getMessage()); - } + assertThatThrownBy(() -> new ApiParameterHandler().getParameters(noArguments)) + .hasMessageContaining("\"name\"", "is null"); } @Test @@ -137,36 +127,13 @@ public class TestApiParameterHandler { } @Test - public void testApiParameterGroup_InvalidName() throws PolicyApiException, CommandLineException { + public void testApiParameterGroup_Invalid() throws PolicyApiException, CommandLineException { final String[] apiConfigParameters = {"-c", "parameters/ApiConfigParameters_InvalidName.json"}; final ApiCommandLineArguments arguments = new ApiCommandLineArguments(); arguments.parse(apiConfigParameters); - try { - new ApiParameterHandler().getParameters(arguments); - fail("test should throw an exception here"); - } catch (final Exception e) { - assertTrue(e.getMessage().contains( - "field \"name\" type \"java.lang.String\" value \" \" INVALID, must be a non-blank string")); - } - } - - @Test - public void testApiParameterGroup_InvalidRestServerParameters() - throws PolicyApiException, IOException, CommandLineException { - final String[] apiConfigParameters = {"-c", "parameters/ApiConfigParameters_InvalidRestServerParameters.json"}; - final ApiCommandLineArguments arguments = new ApiCommandLineArguments(); - arguments.parse(apiConfigParameters); - - try { - new ApiParameterHandler().getParameters(arguments); - fail("test should throw an exception here"); - } catch (final Exception e) { - final String expectedResult = new String(Files.readAllBytes( - Paths.get("src/test/resources/expectedValidationResults/InvalidRestServerParameters.txt"))) - .replaceAll("\\s+", ""); - assertEquals(expectedResult, e.getMessage().replaceAll("\\s+", "")); - } + assertThatThrownBy(() -> new ApiParameterHandler().getParameters(arguments)).hasMessageContaining("\"name\"", + "is null"); } @Test 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 cfc2a30e..f7e43b8d 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 @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2020-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. @@ -30,7 +30,7 @@ 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.GroupValidationResult; +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; @@ -49,7 +49,7 @@ public class ApiDatabaseInitializerTest { COMMON_TEST_DATA.makeParameters(PARAM_FILE, "src/test/resources/parameters/ApiConfigParametersXXX.json", 6969); params = new StandardCoder().decode(new File(PARAM_FILE), ApiParameterGroup.class); - GroupValidationResult result = params.validate(); + ValidationResult result = params.validate(); if (!result.isValid()) { fail(result.getResult()); } diff --git a/main/src/test/resources/expectedValidationResults/InvalidRestServerParameters.txt b/main/src/test/resources/expectedValidationResults/InvalidRestServerParameters.txt deleted file mode 100644 index eca803ea..00000000 --- a/main/src/test/resources/expectedValidationResults/InvalidRestServerParameters.txt +++ /dev/null @@ -1,7 +0,0 @@ -validation error(s) on parameters from "parameters/ApiConfigParameters_InvalidRestServerParameters.json" -parameter group "ApiGroup" type "org.onap.policy.api.main.parameters.ApiParameterGroup" INVALID, parameter group has status INVALID - parameter group "RestServerParameters" type "org.onap.policy.common.endpoints.parameters.RestServerParameters" INVALID, parameter group has status INVALID - field "host" type "java.lang.String" value "" INVALID, must be a non-blank string - field "port" type "int" value "-1" INVALID, must be >= 1 - field "userName" type "java.lang.String" value "" INVALID, must be a non-blank string - field "password" type "java.lang.String" value "" INVALID, must be a non-blank string
\ No newline at end of file |