From c7df5f53e2d525230170dc818572883de0bdf2ca Mon Sep 17 00:00:00 2001 From: Bogumil Zebek Date: Mon, 7 Oct 2019 08:11:34 +0200 Subject: Improve code quality Issue-ID: CCSDK-1808 Signed-off-by: Zebek Bogumil Change-Id: I004557c67b3440c41c00b6bf1a13e723f3ded0e4 --- .../aaiconnector/impl/URLParamEncoder.java | 25 +++-- .../base/netconf/container/AllPm.java | 26 +++--- .../aaiconnector/impl/URLParamEncoderTest.java | 38 ++++++++ .../base/netconf/container/AllPmTest.java | 104 +++++++++++++++++++++ 4 files changed, 171 insertions(+), 22 deletions(-) create mode 100644 sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/aaiconnector/impl/URLParamEncoderTest.java create mode 100644 sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/base/netconf/container/AllPmTest.java (limited to 'sdnr') diff --git a/sdnr/wt/devicemanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/aaiconnector/impl/URLParamEncoder.java b/sdnr/wt/devicemanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/aaiconnector/impl/URLParamEncoder.java index 2e8b44fd7..4decc24d7 100644 --- a/sdnr/wt/devicemanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/aaiconnector/impl/URLParamEncoder.java +++ b/sdnr/wt/devicemanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/aaiconnector/impl/URLParamEncoder.java @@ -19,13 +19,16 @@ package org.onap.ccsdk.features.sdnr.wt.devicemanager.aaiconnector.impl; class URLParamEncoder { + private URLParamEncoder() { + } + + private static final String UNSAFE_CHARSET = " %$&+,/:;=?@<>#%"; + public static String encode(String input) { StringBuilder resultStr = new StringBuilder(); for (char ch : input.toCharArray()) { if (isUnsafe(ch)) { - resultStr.append('%'); - resultStr.append(toHex(ch / 16)); - resultStr.append(toHex(ch % 16)); + resultStr.append(escape(ch)); } else { resultStr.append(ch); } @@ -33,14 +36,18 @@ class URLParamEncoder { return resultStr.toString(); } - private static char toHex(int ch) { - return (char) (ch < 10 ? '0' + ch : 'A' + ch - 10); - } - private static boolean isUnsafe(char ch) { - if (ch > 128 || ch < 0) { + if (ch > 128) { return true; } - return " %$&+,/:;=?@<>#%".indexOf(ch) >= 0; + return UNSAFE_CHARSET.indexOf(ch) >= 0; + } + + private static String escape(char ch){ + return String.format("%c%c%c", '%', toHex(ch / 16), toHex(ch % 16)); + } + + private static char toHex(int ch) { + return (char) (ch < 10 ? '0' + ch : 'A' + ch - 10); } } diff --git a/sdnr/wt/devicemanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/base/netconf/container/AllPm.java b/sdnr/wt/devicemanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/base/netconf/container/AllPm.java index 196493cde..5c7cd03bd 100644 --- a/sdnr/wt/devicemanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/base/netconf/container/AllPm.java +++ b/sdnr/wt/devicemanager/provider/src/main/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/base/netconf/container/AllPm.java @@ -1,4 +1,4 @@ -/******************************************************************************* +/** * ============LICENSE_START======================================================================== * ONAP : ccsdk feature sdnr wt * ================================================================================================= @@ -6,28 +6,28 @@ * ================================================================================================= * 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. * ============LICENSE_END========================================================================== - ******************************************************************************/ + */ /** * */ package org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.container; -import java.util.ArrayList; -import java.util.List; import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsHistoricalPerformance15Minutes; import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsHistoricalPerformance24Hours; -public class AllPm { +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; - private final static AllPm EMPTY = new AllPm(); +public class AllPm { private final List pm15 = new ArrayList<>(); private final List pm24 = new ArrayList<>(); @@ -41,19 +41,19 @@ public class AllPm { } public List getPm15() { - return pm15; + return Collections.unmodifiableList(pm15); } public List getPm24() { - return pm24; + return Collections.unmodifiableList(pm24); } - public Object size() { - return pm15.size()+pm24.size(); + public int size() { + return pm15.size() + pm24.size(); } public static AllPm getEmpty() { - return EMPTY; + return new AllPm(); } } diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/aaiconnector/impl/URLParamEncoderTest.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/aaiconnector/impl/URLParamEncoderTest.java new file mode 100644 index 000000000..cc4a43677 --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/aaiconnector/impl/URLParamEncoderTest.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 Nokia 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. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.aaiconnector.impl; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + + +public class URLParamEncoderTest { + + @Test + public void shouldEncodeStringsToFormatAcceptableByURL(){ + assertEquals("test", URLParamEncoder.encode("test")); + assertEquals("test%20str", URLParamEncoder.encode("test str")); + assertEquals("test%23%24str", URLParamEncoder.encode("test#$str")); + assertEquals("test%20%25%24%26%2B%2C%2F%3A%3B%3D%3F%40%3C%3E%23%25str", URLParamEncoder.encode("test %$&+,/:;=?@<>#%str")); + + } +} diff --git a/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/base/netconf/container/AllPmTest.java b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/base/netconf/container/AllPmTest.java new file mode 100644 index 000000000..538dcd47a --- /dev/null +++ b/sdnr/wt/devicemanager/provider/src/test/java/org/onap/ccsdk/features/sdnr/wt/devicemanager/base/netconf/container/AllPmTest.java @@ -0,0 +1,104 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * ONAP : ccsdk feature sdnr wt + * ================================================================================ + * Copyright (C) 2019 Nokia 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. + * ============LICENSE_END========================================================= + ******************************************************************************/ +package org.onap.ccsdk.features.sdnr.wt.devicemanager.base.netconf.container; + +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsHistoricalPerformance15Minutes; +import org.onap.ccsdk.features.sdnr.wt.devicemanager.performancemanager.impl.database.types.EsHistoricalPerformance24Hours; + +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + + +public class AllPmTest { + + private AllPm allPm; + + @Before + public void setUp(){ + allPm = AllPm.getEmpty(); + } + + @Test + public void shouldCreateEmptyInstance() { + assertEquals(0, allPm.size()); + } + + + @Test + public void shouldBePossibleToAdd15MinutesPerformanceMeasurements() { + // given + final EsHistoricalPerformance15Minutes esHistoricalPerformance15Minutes_1 = mock(EsHistoricalPerformance15Minutes.class); + final EsHistoricalPerformance15Minutes esHistoricalPerformance15Minutes_2 = mock(EsHistoricalPerformance15Minutes.class); + + allPm.add(esHistoricalPerformance15Minutes_1); + allPm.add(esHistoricalPerformance15Minutes_2); + + + // when + final List pm15size = allPm.getPm15(); + final List pm24size = allPm.getPm24(); + + // then + assertEquals(2, pm15size.size()); + assertEquals(0, pm24size.size()); + } + + @Test + public void shouldBePossibleToAdd24HoursPerformanceMeasurements() { + // given + final EsHistoricalPerformance24Hours esHistoricalPerformance24Hours_1 = mock(EsHistoricalPerformance24Hours.class); + final EsHistoricalPerformance24Hours esHistoricalPerformance24Hours_2 = mock(EsHistoricalPerformance24Hours.class); + + allPm.add(esHistoricalPerformance24Hours_1); + allPm.add(esHistoricalPerformance24Hours_2); + + + // when + final List pm15size = allPm.getPm15(); + final List pm24size = allPm.getPm24(); + + // then + assertEquals(0, pm15size.size()); + assertEquals(2, pm24size.size()); + } + + @Test + public void shouldBePossibleToAddPerformanceMeasurements() { + // given + final EsHistoricalPerformance15Minutes esHistoricalPerformance15Minutes = mock(EsHistoricalPerformance15Minutes.class); + final EsHistoricalPerformance24Hours esHistoricalPerformance24Hours = mock(EsHistoricalPerformance24Hours.class); + + allPm.add(esHistoricalPerformance15Minutes); + allPm.add(esHistoricalPerformance24Hours); + + // when + final int size = allPm.size(); + + // then + assertEquals(2, size); + } + + +} -- cgit 1.2.3-korg