From e168ce2fad71650ad730519c772a9b093c0a8f43 Mon Sep 17 00:00:00 2001 From: Jim Hahn Date: Wed, 28 Apr 2021 15:45:22 -0400 Subject: Remove GroupValidationResult Removed GroupValidationResult, replacing it with BeanValidationResult. Modified the ParameterGroup subclasses to use BeanValidator, adding annotations where needed to trigger the validations that had been automatically performed by GroupValidationResult. Issue-ID: POLICY-2059 Change-Id: I2c0c01fac355e6cde4d8d6998dc42f8a2e2ebb65 Signed-off-by: Jim Hahn --- ...ntRequestorCarrierTechnologyParametersTest.java | 7 +- .../apex/service/engine/main/ApexMainTest.java | 3 +- .../engine/parameters/ApexParametersTest.java | 10 +- .../service/engine/parameters/ParameterTests.java | 80 +++---- .../engine/parameters/ProducerConsumerTests.java | 58 ++--- .../engine/parameters/SyncParameterTests.java | 236 ++++++--------------- .../SuperDooperCarrierTechnologyParameters.java | 116 +++------- 7 files changed, 153 insertions(+), 357 deletions(-) (limited to 'services/services-engine/src/test/java/org') diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorCarrierTechnologyParametersTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorCarrierTechnologyParametersTest.java index c0da81625..878756383 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorCarrierTechnologyParametersTest.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/event/impl/eventrequestor/EventRequestorCarrierTechnologyParametersTest.java @@ -1,6 +1,7 @@ /* * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation + * 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. @@ -23,7 +24,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.junit.Test; -import org.onap.policy.common.parameters.GroupValidationResult; +import org.onap.policy.common.parameters.ValidationResult; public class EventRequestorCarrierTechnologyParametersTest { @@ -37,7 +38,7 @@ public class EventRequestorCarrierTechnologyParametersTest { @Test public void validate() { final EventRequestorCarrierTechnologyParameters parameters = new EventRequestorCarrierTechnologyParameters(); - final GroupValidationResult actual = parameters.validate(); + final ValidationResult actual = parameters.validate(); assertNotNull(actual); } -} \ No newline at end of file +} diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/main/ApexMainTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/main/ApexMainTest.java index b7532aba2..29a3e0f00 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/main/ApexMainTest.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/main/ApexMainTest.java @@ -3,6 +3,7 @@ * Copyright (C) 2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020-2021 Nordix Foundation. * Modifications Copyright (C) 2020-2021 Bell Canada. 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. @@ -109,7 +110,7 @@ public class ApexMainTest { apexMain1 = new ApexMain(args); await().atMost(200, TimeUnit.MILLISECONDS).until(() -> outContent.toString() - .contains("parameter group has status INVALID")); + .contains("item has status INVALID")); assertNotNull(apexMain1); } diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ApexParametersTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ApexParametersTest.java index 9557ca8f9..a0169d7e3 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ApexParametersTest.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ApexParametersTest.java @@ -3,6 +3,7 @@ * Copyright (C) 2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2020 Nordix Foundation. * Modifications Copyright (C) 2020 Bell Canada. 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. @@ -70,10 +71,11 @@ public class ApexParametersTest { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessageContaining("java properties array entries must have one key and one value") - .hasMessageContaining("java properties key is null or blank") - .hasMessageContaining("java properties value is null or blank") - .hasMessageContaining("java properties array entry is null"); + .hasMessageContaining("\"javaProperties\"") + .hasMessageContaining("entry 0", "entry 1", "entry 2", "entry 3", "entry 4", "entry 5") + .hasMessageContaining("must have one key and one value") + .hasMessageContaining("\"key\" value \"null\" INVALID, is blank") + .hasMessageContaining("\"value\" value \"null\" INVALID, is blank"); } @Test diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ParameterTests.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ParameterTests.java index da4ceaa12..e37da3540 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ParameterTests.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ParameterTests.java @@ -3,6 +3,7 @@ * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2019-2020 Nordix Foundation. * Modifications Copyright (C) 2020 Bell Canada. 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. @@ -72,15 +73,11 @@ public class ParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from \"src/test/resources/parameters/noParams.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" + " parameter group \"UNDEFINED\" INVALID, " - + "engine service parameters are not specified\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "at least one event output must be specified\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "at least one event input must be specified\n"); + .hasMessageContaining("src/test/resources/parameters/noParams.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"engineServiceParameters\" value \"null\" INVALID, is null") + .hasMessageContaining("\"eventOutputParameters\" value \"{}\" INVALID, minimum number of elements: 1") + .hasMessageContaining("\"eventInputParameters\" value \"{}\" INVALID, minimum number of elements: 1"); } @Test @@ -89,19 +86,13 @@ public class ParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from \"src/test/resources/parameters/blankParams.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" + " parameter group \"ENGINE_SERVICE_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.engineservice.EngineServiceParameters\" " - + "INVALID, parameter group has status INVALID\n" - + " field \"id\" type \"int\" value \"-1\" INVALID, " - + "id not specified or specified value [-1] invalid, must be specified as id >= 0\n" - + " field \"policyModel\" type \"java.lang.String\" value \"null\" INVALID, must be specified\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "at least one event output must be specified\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "at least one event input must be specified\n"); + .hasMessageContaining("src/test/resources/parameters/blankParams.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("EngineServiceParameters") + .hasMessageContaining("\"id\" value \"-1\" INVALID, is below the minimum") + .hasMessageContaining("\"policyModel\" value \"null\" INVALID, is null") + .hasMessageContaining("\"eventOutputParameters\" value \"{}\" INVALID, minimum number of elements") + .hasMessageContaining("\"eventInputParameters\" value \"{}\" INVALID, minimum number of elements"); } @Test @@ -110,38 +101,19 @@ public class ParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from \"src/test/resources/parameters/badParams.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" + " parameter group \"hello there\" type " - + "\"org.onap.policy.apex.service.parameters.engineservice.EngineServiceParameters\" " - + "INVALID, parameter group has status INVALID\n" - + " field \"name\" type \"java.lang.String\" value \"hello there\" INVALID, " - + "name is invalid, it must match regular expression[A-Za-z0-9\\-_\\.]+\n" - + " field \"id\" type \"int\" value \"-45\" INVALID, id not specified or " - + "specified value [-45] invalid, must be specified as id >= 0\n" - + " field \"instanceCount\" type \"int\" value \"-345\" INVALID, " - + "instanceCount [-345] invalid, must be specified as instanceCount >= 1\n" - + " field \"deploymentPort\" type \"int\" value \"65536\" INVALID, " - + "deploymentPort [65536] invalid, must be specified as 1024 <= port <= 65535\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"FirstProducer\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", parameter group has status INVALID\n" + " parameter group \"FILE\" type " - + "\"org.onap.policy.apex.service.engine.event.impl." - + "filecarrierplugin.FileCarrierTechnologyParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " field \"fileName\" type \"java.lang.String\" value \"null\" INVALID, " - + "\"null\" invalid, must be specified as a non-empty string\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"TheFileConsumer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", parameter group has status INVALID\n" + " parameter group \"FILE\" type " - + "\"org.onap.policy.apex.service.engine.event.impl." - + "filecarrierplugin.FileCarrierTechnologyParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " field \"fileName\" type \"java.lang.String\" value \"null\" INVALID, " - + "\"null\" invalid, must be specified as a non-empty string\n"); + .hasMessageContaining("src/test/resources/parameters/badParams.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("EngineServiceParameters") + .hasMessageContaining("\"name\" value \"hello there\" INVALID, does not match") + .hasMessageContaining("\"id\" value \"-45\" INVALID, is below the minimum") + .hasMessageContaining("\"instanceCount\" value \"-345\" INVALID, is below the minimum") + .hasMessageContaining("\"deploymentPort\" value \"65536\" INVALID, exceeds the maximum") + .hasMessageContaining("eventOutputParameters", "FirstProducer", "EventHandlerParameters", + "FileCarrierTechnologyParameters") + .hasMessageContaining("\"fileName\" value \"null\" INVALID, is blank") + .hasMessageContaining("eventInputParameters", "TheFileConsumer1", "EventHandlerParameters", + "FileCarrierTechnologyParameters") + .hasMessageContaining("\"fileName\" value \"null\" INVALID, is blank"); } @Test diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ProducerConsumerTests.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ProducerConsumerTests.java index 0ef4fa252..0b05eac63 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ProducerConsumerTests.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/ProducerConsumerTests.java @@ -3,6 +3,7 @@ * Copyright (C) 2016-2018 Ericsson. All rights reserved. * Modifications Copyright (C) 2019-2020 Nordix Foundation. * Modifications Copyright (C) 2020 Bell Canada. 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. @@ -75,14 +76,11 @@ public class ProducerConsumerTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from \"src/test/resources/parameters/prodConsNoCT.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" + " parameter group map \"eventInputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"aConsumer\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID," - + " parameter group has status INVALID\n" + " parameter group \"UNDEFINED\" INVALID, " - + "event handler carrierTechnologyParameters not specified or blank\n"); + .hasMessageContaining("src/test/resources/parameters/prodConsNoCT.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("eventInputParameters", "aConsumer", "EventHandlerParameters", + "carrierTechnologyParameters") + .hasMessageContaining("is null"); } @Test @@ -91,23 +89,14 @@ public class ProducerConsumerTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from \"src/test/resources/parameters/prodConsNoEP.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"aProducer\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", parameter group has status INVALID\n" + " parameter group \"UNDEFINED\" INVALID, " - + "event handler eventProtocolParameters not specified or blank\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"aConsumer\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", parameter group has status INVALID\n" + " parameter group \"FILE\" type " - + "\"org.onap.policy.apex.service.engine.event.impl." - + "filecarrierplugin.FileCarrierTechnologyParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " field \"fileName\" type \"java.lang.String\" value \"null\" INVALID, " - + "\"null\" invalid, must be specified as a non-empty string\n"); + .hasMessageContaining("src/test/resources/parameters/prodConsNoEP.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("eventOutputParameters", "aProducer", "EventHandlerParameters", + "eventProtocolParameters") + .hasMessageContaining("eventInputParameters", "aConsumer", "EventHandlerParameters", + "FileCarrierTechnologyParameters", "fileName") + .hasMessageContaining("is null") + .hasMessageContaining("is blank"); } @Test @@ -170,19 +159,12 @@ public class ProducerConsumerTests { final String[] args = {"-p", "src/test/resources/parameters/prodConsBadFileName.json"}; final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); - assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)).hasMessage( - "validation error(s) on parameters from " + "\"src/test/resources/parameters/prodConsBadFileName.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"aProducer\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" " - + "INVALID, parameter group has status INVALID\n" + " parameter group \"FILE\" type " - + "\"org.onap.policy.apex.service.engine.event.impl." - + "filecarrierplugin.FileCarrierTechnologyParameters\" INVALID, " - + "parameter group has status INVALID\n" + " field \"fileName\" type " - + "\"java.lang.String\" value \"null\" INVALID, " - + "\"null\" invalid, must be specified as a non-empty string\n"); + assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) + .hasMessageContaining("src/test/resources/parameters/prodConsBadFileName.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("eventOutputParameters", "aProducer", "EventHandlerParameters", + "FileCarrierTechnologyParameters", "fileName") + .hasMessageContaining("is blank"); } @Test diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/SyncParameterTests.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/SyncParameterTests.java index 71ff28877..aaa98fd47 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/SyncParameterTests.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/SyncParameterTests.java @@ -51,16 +51,10 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncBadParamsNoSyncWithPeer.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncProducer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", specified peered mode \"SYNCHRONOUS\" " - + "peer is illegal on eventOutputParameters \"SyncProducer0\" \n"); + .hasMessageContaining("src/test/resources/parameters/syncBadParamsNoSyncWithPeer.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer0\" INVALID") + .hasMessageContaining("peer is illegal"); } @Test @@ -69,16 +63,10 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncBadParamsNotSyncWithPeer.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncProducer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", specified peered mode \"SYNCHRONOUS\" peer is illegal " - + "on eventOutputParameters \"SyncProducer0\" \n"); + .hasMessageContaining("src/test/resources/parameters/syncBadParamsNotSyncWithPeer.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer0\" INVALID") + .hasMessageContaining("peer is illegal"); } @Test @@ -87,27 +75,13 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncBadParamsBadPeers.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncProducer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncProducer1 for peered mode SYNCHRONOUS does not exist " - + "or is not defined with the same peered mode\n" + " parameter group \"SyncProducer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncProducer0 for peered mode SYNCHRONOUS does not exist " - + "or is not defined with the same peered mode\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncConsumer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncConsumer1 for peered mode SYNCHRONOUS does not exist " - + "or is not defined with the same peered mode\n" + " parameter group \"SyncConsumer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncConsumer0 for peered mode SYNCHRONOUS does not exist " - + "or is not defined with the same peered mode\n"); + .hasMessageContaining("src/test/resources/parameters/syncBadParamsBadPeers.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer0\" INVALID") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer1\" INVALID") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer0\" INVALID") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer1\" INVALID") + .hasMessageContaining("does not exist or is not defined"); } @Test @@ -116,29 +90,16 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncBadParamsInvalidTimeout.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncProducer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID," - + " specified peered mode \"SYNCHRONOUS\" timeout value \"-10\" is illegal, " - + "specify a non-negative timeout value in milliseconds\n" - + " parameter group \"SyncProducer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" " - + "INVALID, specified peered mode \"SYNCHRONOUS\" timeout value \"-3\" is illegal, " - + "specify a non-negative timeout value in milliseconds\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncConsumer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" " - + "INVALID, specified peered mode \"SYNCHRONOUS\" timeout value \"-1\" is illegal, " - + "specify a non-negative timeout value in milliseconds\n" - + " parameter group \"SyncConsumer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID," - + " specified peered mode \"SYNCHRONOUS\" timeout value \"-99999999\" is illegal, " - + "specify a non-negative timeout value in milliseconds\n"); + .hasMessageContaining("src/test/resources/parameters/syncBadParamsInvalidTimeout.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer0\" INVALID") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer1\" INVALID") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer0\" INVALID") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer1\" INVALID") + .hasMessageContaining("timeout value \"-10\" is illegal") + .hasMessageContaining("timeout value \"-3\" is illegal") + .hasMessageContaining("timeout value \"-1\" is illegal") + .hasMessageContaining("timeout value \"-99999999\" is illegal"); } @Test @@ -147,16 +108,10 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncBadParamsBadTimeout.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" " - + "INVALID, parameter group has status INVALID\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"MyOtherProducer\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" " - + "INVALID, specified peered mode \"SYNCHRONOUS\" " - + "timeout is illegal on eventOutputParameters \"MyOtherProducer\"\n"); + .hasMessageContaining("src/test/resources/parameters/syncBadParamsBadTimeout.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"MyOtherProducer\" INVALID, " + + "specified peered mode \"SYNCHRONOUS\" timeout is illegal"); } @Test @@ -165,29 +120,16 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncBadParamsUnpairedTimeout.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncProducer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncConsumer0 for peered mode SYNCHRONOUS timeout 10 on event handler " - + "\"SyncProducer0\" does not equal timeout 1 on event handler \"SyncConsumer0\"\n" - + " parameter group \"SyncProducer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncConsumer1 for peered mode SYNCHRONOUS timeout 3 on event handler " - + "\"SyncProducer1\" does not equal timeout 99999999 on event handler \"SyncConsumer1\"\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncConsumer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncProducer0 for peered mode SYNCHRONOUS timeout 1 on event handler " - + "\"SyncConsumer0\" does not equal timeout 10 on event handler \"SyncProducer0\"\n" - + " parameter group \"SyncConsumer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncProducer1 for peered mode SYNCHRONOUS timeout 99999999 on event handler " - + "\"SyncConsumer1\" does not equal timeout 3 on event handler \"SyncProducer1\"\n" + ""); + .hasMessageContaining("src/test/resources/parameters/syncBadParamsUnpairedTimeout.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer0\" INVALID, peer \"SyncConsumer0\"") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer1\" INVALID, peer \"SyncConsumer1\"") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer0\" INVALID, peer \"SyncProducer0\"") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer1\" INVALID, peer \"SyncProducer1\"") + .hasMessageContaining("timeout 10 does not equal peer timeout 1") + .hasMessageContaining("timeout 3 does not equal peer timeout 99999999") + .hasMessageContaining("timeout 1 does not equal peer timeout 10") + .hasMessageContaining("timeout 99999999 does not equal peer timeout 3"); } @Test @@ -226,23 +168,12 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncUnusedConsumerPeers.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncProducer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" " - + "INVALID, peer \"SyncConsumer0 for peered mode SYNCHRONOUS, " - + "value \"SyncProducer0\" on peer \"SyncConsumer0\" " - + "does not equal event handler \"SyncProducer1\"\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncConsumer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" " - + "INVALID, peer \"SyncProducer1 for peered mode SYNCHRONOUS, " - + "value \"SyncConsumer0\" on peer \"SyncProducer1\" " - + "does not equal event handler \"SyncConsumer1\"\n"); + .hasMessageContaining("src/test/resources/parameters/syncUnusedConsumerPeers.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer1\" INVALID, peer \"SyncConsumer0\"") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer1\" INVALID, peer \"SyncProducer1\"") + .hasMessageContaining("value \"SyncProducer0\" on peer does not equal event handler") + .hasMessageContaining("value \"SyncConsumer0\" on peer does not equal event handler"); } @Test @@ -251,29 +182,16 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncMismatchedPeers.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncProducer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncConsumer1 for peered mode SYNCHRONOUS, value \"SyncProducer1\" " - + "on peer \"SyncConsumer1\" does not equal event handler \"SyncProducer0\"\n" - + " parameter group \"SyncProducer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncConsumer0 for peered mode SYNCHRONOUS, value \"SyncProducer0\" " - + "on peer \"SyncConsumer0\" does not equal event handler \"SyncProducer1\"\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncConsumer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncProducer0 for peered mode SYNCHRONOUS, value \"SyncConsumer1\" " - + "on peer \"SyncProducer0\" does not equal event handler \"SyncConsumer0\"\n" - + " parameter group \"SyncConsumer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncProducer1 for peered mode SYNCHRONOUS, value \"SyncConsumer0\" " - + "on peer \"SyncProducer1\" does not equal event handler \"SyncConsumer1\"\n"); + .hasMessageContaining("src/test/resources/parameters/syncMismatchedPeers.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer0\" INVALID, peer \"SyncConsumer1\"") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer1\" INVALID, peer \"SyncConsumer0\"") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer0\" INVALID, peer \"SyncProducer0\"") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer1\" INVALID, peer \"SyncProducer1\"") + .hasMessageContaining("value \"SyncProducer1\" on peer does not equal event handler") + .hasMessageContaining("value \"SyncProducer0\" on peer does not equal event handler") + .hasMessageContaining("value \"SyncConsumer1\" on peer does not equal event handler") + .hasMessageContaining("value \"SyncConsumer0\" on peer does not equal event handler"); } @Test @@ -282,21 +200,12 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncUnusedProducerPeers.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" - + " parameter group map \"eventOutputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncProducer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncConsumer0 for peered mode SYNCHRONOUS, value \"SyncProducer1\" on peer " - + "\"SyncConsumer0\" does not equal event handler \"SyncProducer0\"\n" - + " parameter group map \"eventInputParameters\" INVALID, parameter group map has status " - + "INVALID\n parameter group \"SyncConsumer0\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID" - + ", peer \"SyncProducer1 for peered mode SYNCHRONOUS, value \"SyncConsumer1\" on peer " - + "\"SyncProducer1\" does not equal event handler \"SyncConsumer0\"\n"); + .hasMessageContaining("src/test/resources/parameters/syncUnusedProducerPeers.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer0\" INVALID, peer \"SyncConsumer0\"") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer0\" INVALID, peer \"SyncProducer1\"") + .hasMessageContaining("value \"SyncProducer1\" on peer does not equal event handler") + .hasMessageContaining("value \"SyncConsumer1\" on peer does not equal event handler"); } @Test @@ -305,23 +214,12 @@ public class SyncParameterTests { final ApexCommandLineArguments arguments = new ApexCommandLineArguments(args); assertThatThrownBy(() -> new ApexParameterHandler().getParameters(arguments)) - .hasMessage("validation error(s) on parameters from " - + "\"src/test/resources/parameters/syncMismatchedTimeout.json\"\n" - + "parameter group \"APEX_PARAMETERS\" type " - + "\"org.onap.policy.apex.service.parameters.ApexParameters\" INVALID, " - + "parameter group has status INVALID\n" + " parameter group map \"eventOutputParameters\" " - + "INVALID, parameter group map has status INVALID\n" - + " parameter group \"SyncProducer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID," - + " peer \"SyncConsumer1 for peered mode SYNCHRONOUS timeout 456 " - + "on event handler \"SyncProducer1\" does not equal timeout 123 " - + "on event handler \"SyncConsumer1\"\n" - + " parameter group map \"eventInputParameters\" INVALID, " - + "parameter group map has status INVALID\n" + " parameter group \"SyncConsumer1\" type " - + "\"org.onap.policy.apex.service.parameters.eventhandler.EventHandlerParameters\" INVALID," - + " peer \"SyncProducer1 for peered mode SYNCHRONOUS timeout 123 " - + "on event handler \"SyncConsumer1\" does not equal timeout 456 " - + "on event handler \"SyncProducer1\"\n"); + .hasMessageContaining("src/test/resources/parameters/syncMismatchedTimeout.json") + .hasMessageContaining("ApexParameters") + .hasMessageContaining("\"eventOutputParameters\" value \"SyncProducer1\" INVALID, peer \"SyncConsumer1\"") + .hasMessageContaining("\"eventInputParameters\" value \"SyncConsumer1\" INVALID, peer \"SyncProducer1\"") + .hasMessageContaining("timeout 123 does not equal peer timeout 456") + .hasMessageContaining("timeout 456 does not equal peer timeout 123"); } @Test diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/dummyclasses/SuperDooperCarrierTechnologyParameters.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/dummyclasses/SuperDooperCarrierTechnologyParameters.java index 6805a3d84..d7a502c7f 100644 --- a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/dummyclasses/SuperDooperCarrierTechnologyParameters.java +++ b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/parameters/dummyclasses/SuperDooperCarrierTechnologyParameters.java @@ -1,6 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2016-2018 Ericsson. 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. @@ -23,15 +24,22 @@ package org.onap.policy.apex.service.engine.parameters.dummyclasses; import java.util.Arrays; import java.util.Collection; import java.util.Properties; +import org.apache.commons.lang3.StringUtils; import org.onap.policy.apex.service.parameters.carriertechnology.CarrierTechnologyParameters; -import org.onap.policy.common.parameters.GroupValidationResult; +import org.onap.policy.common.parameters.BeanValidationResult; import org.onap.policy.common.parameters.ValidationStatus; +import org.onap.policy.common.parameters.annotations.Min; +import org.onap.policy.common.parameters.annotations.NotBlank; +import org.onap.policy.common.parameters.annotations.NotNull; +import org.onap.policy.models.base.Validated; /** * Apex parameters for SuperDooper as an event carrier technology. * * @author Liam Fallon (liam.fallon@ericsson.com) */ +@NotNull +@NotBlank public class SuperDooperCarrierTechnologyParameters extends CarrierTechnologyParameters { // Default parameter values private static final String DEFAULT_ACKS = "all"; @@ -71,16 +79,16 @@ public class SuperDooperCarrierTechnologyParameters extends CarrierTechnologyPar // superDooper carrier parameters private String bootstrapServers = DEFAULT_BOOTSTRAP_SERVERS; private String acks = DEFAULT_ACKS; - private int retries = DEFAULT_RETRIES; - private int batchSize = DEFAULT_BATCH_SIZE; - private int lingerTime = DEFAULT_LINGER_TIME; - private long bufferMemory = DEFAULT_BUFFER_MEMORY; + private @Min(0) int retries = DEFAULT_RETRIES; + private @Min(0) int batchSize = DEFAULT_BATCH_SIZE; + private @Min(0) int lingerTime = DEFAULT_LINGER_TIME; + private @Min(0) long bufferMemory = DEFAULT_BUFFER_MEMORY; private String groupId = DEFAULT_GROUP_ID; private boolean enableAutoCommit = DEFAULT_ENABLE_AUTO_COMMIT; - private int autoCommitTime = DEFAULT_AUTO_COMMIT_TIME; + private @Min(0) int autoCommitTime = DEFAULT_AUTO_COMMIT_TIME; private int sessionTimeout = DEFAULT_SESSION_TIMEOUT; private String producerTopic = DEFAULT_PRODUCER_TOPIC; - private int consumerPollTime = DEFAULT_CONSUMER_POLL_TIME; + private @Min(0) int consumerPollTime = DEFAULT_CONSUMER_POLL_TIME; private String[] consumerTopicList = DEFAULT_CONSUMER_TOPIC_LIST; private String keySerializer = DEFAULT_KEYSERZER; private String valueSerializer = DEFAULT_VALSERZER; @@ -459,98 +467,30 @@ public class SuperDooperCarrierTechnologyParameters extends CarrierTechnologyPar * {@inheritDoc}. */ @Override - public GroupValidationResult validate() { - final GroupValidationResult result = super.validate(); + public BeanValidationResult validate() { + final BeanValidationResult result = super.validate(); - if (bootstrapServers == null || bootstrapServers.trim().length() == 0) { - result.setResult("bootstrapServers", ValidationStatus.INVALID, - "bootstrapServers not specified, must be specified as a string of form host:port"); + if (consumerTopicList == null) { + return result; } - if (acks == null || acks.trim().length() == 0) { - result.setResult("acks", ValidationStatus.INVALID, - "acks not specified, must be specified as a string with values [0|1|all]"); - } - - if (retries < 0) { - result.setResult("retries", ValidationStatus.INVALID, - "[" + retries + "] invalid, must be specified as retries >= 0"); - } - - if (batchSize < 0) { - result.setResult("batchSize", ValidationStatus.INVALID, - "[" + batchSize + "] invalid, must be specified as batchSize >= 0"); - } - - if (lingerTime < 0) { - result.setResult("lingerTime", ValidationStatus.INVALID, - "[" + lingerTime + "] invalid, must be specified as lingerTime >= 0"); - } - - if (bufferMemory < 0) { - result.setResult("bufferMemory", ValidationStatus.INVALID, - "[" + bufferMemory + "] invalid, must be specified as bufferMemory >= 0"); - } - - if (groupId == null || groupId.trim().length() == 0) { - result.setResult("groupId", ValidationStatus.INVALID, "not specified, must be specified as a string"); - } - - if (autoCommitTime < 0) { - result.setResult("autoCommitTime", ValidationStatus.INVALID, - "[" + autoCommitTime + "] invalid, must be specified as autoCommitTime >= 0"); - } - - if (sessionTimeout < 0) { - result.setResult("sessionTimeout", ValidationStatus.INVALID, - "sessionTimeout [" + sessionTimeout + "] invalid, must be specified as sessionTimeout >= 0"); - } - - if (producerTopic == null || producerTopic.trim().length() == 0) { - result.setResult("producerTopic", ValidationStatus.INVALID, - "producerTopic not specified, must be specified as a string"); - } - - if (consumerPollTime < 0) { - result.setResult("consumerPollTime", ValidationStatus.INVALID, - "[" + consumerPollTime + "] invalid, must be specified as consumerPollTime >= 0"); - } - - if (consumerTopicList == null || consumerTopicList.length == 0) { - result.setResult("consumerTopicList", ValidationStatus.INVALID, + if (consumerTopicList.length == 0) { + result.addResult("consumerTopicList", consumerTopicList, ValidationStatus.INVALID, "not specified, must be specified as a list of strings"); + return result; } - StringBuilder consumerTopicMessageBuilder = new StringBuilder(); + BeanValidationResult result2 = new BeanValidationResult("consumerTopicList", consumerTopicList); + int item = 0; for (final String consumerTopic : consumerTopicList) { - if (consumerTopic == null || consumerTopic.trim().length() == 0) { - consumerTopicMessageBuilder.append(" invalid consumer topic \"" + consumerTopic - + "\" specified on consumerTopicList, consumer topics must be specified as strings"); + if (StringUtils.isBlank(consumerTopic)) { + result2.addResult("entry " + item, consumerTopic, ValidationStatus.INVALID, Validated.IS_BLANK); } - } - if (consumerTopicMessageBuilder.length() > 0) { - result.setResult("consumerTopicList", ValidationStatus.INVALID, consumerTopicMessageBuilder.toString()); + ++item; } - if (keySerializer == null || keySerializer.trim().length() == 0) { - result.setResult("keySerializer", ValidationStatus.INVALID, "not specified, must be specified as a string"); - } - - if (valueSerializer == null || valueSerializer.trim().length() == 0) { - result.setResult("valueSerializer", ValidationStatus.INVALID, - "not specified, must be specified as a string"); - } - - if (keyDeserializer == null || keyDeserializer.trim().length() == 0) { - result.setResult("keyDeserializer", ValidationStatus.INVALID, - "not specified, must be specified as a string"); - } - - if (valueDeserializer == null || valueDeserializer.trim().length() == 0) { - result.setResult("valueDeserializer", ValidationStatus.INVALID, - "not specified, must be specified as a string"); - } + result.addResult(result2); return result; } -- cgit 1.2.3-korg