From 99b3ae8b86863672ebe410303182d21daeabd0d1 Mon Sep 17 00:00:00 2001 From: ramverma Date: Wed, 22 Aug 2018 12:13:33 +0100 Subject: Adding common utility classes to policy/common * Adding HealthCheckReport class to policy/common for wider use among all policy modules. * Adding utility class called ParameterValidationUtils for providing common validation methods to all policy modules. For now, it has only 3 validation methods but we all can add more in future. Change-Id: I363fe116ba74f25299fd71211be73505b3164f72 Issue-ID: POLICY-1035 Signed-off-by: ramverma --- .../common/endpoints/report/HealthCheckReport.java | 145 +++++++++++++++++++++ .../endpoints/report/TestHealthCheckReport.java | 59 +++++++++ .../utils/validation/ParameterValidationUtils.java | 68 ++++++++++ .../validation/TestParameterValidationUtils.java | 57 ++++++++ 4 files changed, 329 insertions(+) create mode 100644 policy-endpoints/src/main/java/org/onap/policy/common/endpoints/report/HealthCheckReport.java create mode 100644 policy-endpoints/src/test/java/org/onap/policy/common/endpoints/report/TestHealthCheckReport.java create mode 100644 utils/src/main/java/org/onap/policy/common/utils/validation/ParameterValidationUtils.java create mode 100644 utils/src/test/java/org/onap/policy/common/utils/validation/TestParameterValidationUtils.java diff --git a/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/report/HealthCheckReport.java b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/report/HealthCheckReport.java new file mode 100644 index 00000000..147dda76 --- /dev/null +++ b/policy-endpoints/src/main/java/org/onap/policy/common/endpoints/report/HealthCheckReport.java @@ -0,0 +1,145 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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.common.endpoints.report; + +/** + * Class to represent health check report of a service. + * + * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) + */ +public class HealthCheckReport { + + private String name; + private String url; + private boolean healthy; + private int code; + private String message; + + /** + * Returns the name of this report. + * + * @return the name + */ + public String getName() { + return name; + } + + /** + * Set the name of this report. + * + * @param name the name to set + */ + public void setName(final String name) { + this.name = name; + } + + /** + * Returns the url of this report. + * + * @return the url + */ + public String getUrl() { + return url; + } + + /** + * Set the url of this report. + * + * @param url the url to set + */ + public void setUrl(final String url) { + this.url = url; + } + + /** + * Returns the health status of this report. + * + * @return the healthy + */ + public boolean isHealthy() { + return healthy; + } + + /** + * Set the health status of this report. + * + * @param healthy the healthy to set + */ + public void setHealthy(final boolean healthy) { + this.healthy = healthy; + } + + /** + * Returns the code of this report. + * + * @return the code + */ + public int getCode() { + return code; + } + + /** + * Set the code of this report. + * + * @param code the code to set + */ + public void setCode(final int code) { + this.code = code; + } + + /** + * Returns the message of this report. + * + * @return the message + */ + public String getMessage() { + return message; + } + + /** + * Set the message of this report. + * + * @param message the message to set + */ + public void setMessage(final String message) { + this.message = message; + } + + /** + * {@inheritDoc} + */ + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Report [name="); + builder.append(getName()); + builder.append(", url="); + builder.append(getUrl()); + builder.append(", healthy="); + builder.append(isHealthy()); + builder.append(", code="); + builder.append(getCode()); + builder.append(", message="); + builder.append(getMessage()); + builder.append("]"); + return builder.toString(); + } +} diff --git a/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/report/TestHealthCheckReport.java b/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/report/TestHealthCheckReport.java new file mode 100644 index 00000000..72bae0cf --- /dev/null +++ b/policy-endpoints/src/test/java/org/onap/policy/common/endpoints/report/TestHealthCheckReport.java @@ -0,0 +1,59 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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.common.endpoints.report; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +/** + * Class to perform unit test of HealthCheckReport. + * + * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) + */ +public class TestHealthCheckReport { + + @Test + public void testReport() { + final String name = "Policy"; + final String url = "self"; + final boolean healthy = true; + final int code = 200; + final String message = "alive"; + final HealthCheckReport report = new HealthCheckReport(); + report.setName(name); + report.setUrl(url); + report.setHealthy(healthy); + report.setCode(code); + report.setMessage(message); + validateReport(name, url, healthy, code, message, report); + } + + private void validateReport(final String name, final String url, final boolean healthy, final int code, + final String message, final HealthCheckReport report) { + assertEquals(name, report.getName()); + assertEquals(url, report.getUrl()); + assertEquals(healthy, report.isHealthy()); + assertEquals(code, report.getCode()); + assertEquals(message, report.getMessage()); + assertEquals("Report [name=Policy, url=self, healthy=true, code=200, message=alive]", report.toString()); + } +} diff --git a/utils/src/main/java/org/onap/policy/common/utils/validation/ParameterValidationUtils.java b/utils/src/main/java/org/onap/policy/common/utils/validation/ParameterValidationUtils.java new file mode 100644 index 00000000..e2e462da --- /dev/null +++ b/utils/src/main/java/org/onap/policy/common/utils/validation/ParameterValidationUtils.java @@ -0,0 +1,68 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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.common.utils.validation; + +/** + * Class to provide utility methods for common parameter validations. + * + * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) + */ +public class ParameterValidationUtils { + + /** + * Validates the given string input. + * + * @param inputString the string to validate + * @return the boolean validation result + */ + public static boolean validateStringParameter(final String inputString) { + if (inputString == null || inputString.trim().length() == 0) { + return false; + } + return true; + } + + /** + * Validates the given integer input. + * + * @param input the integer to validate + * @return the boolean validation result + */ + public static boolean validateIntParameter(final int input) { + if (input <= 0) { + return false; + } + return true; + } + + /** + * Validates the given long input. + * + * @param input the long to validate + * @return the boolean validation result + */ + public static boolean validateLongParameter(final long input) { + if (input <= 0) { + return false; + } + return true; + } +} diff --git a/utils/src/test/java/org/onap/policy/common/utils/validation/TestParameterValidationUtils.java b/utils/src/test/java/org/onap/policy/common/utils/validation/TestParameterValidationUtils.java new file mode 100644 index 00000000..d8c4c510 --- /dev/null +++ b/utils/src/test/java/org/onap/policy/common/utils/validation/TestParameterValidationUtils.java @@ -0,0 +1,57 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2018 Ericsson. 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.common.utils.validation; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +/** + * Class to perform unit test of ParameterValidationUtils. + * + * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com) + */ +public class TestParameterValidationUtils { + + @Test + public void testValidateStringParameter() { + assertTrue(ParameterValidationUtils.validateStringParameter("Policy")); + assertFalse(ParameterValidationUtils.validateStringParameter(null)); + assertFalse(ParameterValidationUtils.validateStringParameter("")); + } + + @Test + public void testValidateIntParameter() { + assertTrue(ParameterValidationUtils.validateIntParameter(5555)); + assertTrue(ParameterValidationUtils.validateIntParameter(new Integer(7777))); + assertFalse(ParameterValidationUtils.validateIntParameter(0)); + assertFalse(ParameterValidationUtils.validateIntParameter(-1)); + } + + @Test + public void testValidateLongParameter() { + assertTrue(ParameterValidationUtils.validateLongParameter(5555L)); + assertTrue(ParameterValidationUtils.validateLongParameter(new Long(7777L))); + assertFalse(ParameterValidationUtils.validateLongParameter(0L)); + assertFalse(ParameterValidationUtils.validateLongParameter(-1L)); + } +} -- cgit 1.2.3-korg