From 1777d1336dc7eaf3aa6c8e89fb5462c7700128d2 Mon Sep 17 00:00:00 2001 From: vempo Date: Wed, 31 Oct 2018 18:39:44 +0200 Subject: Fixed Sonar violations in configuration Simplified code, added unit tests. Change-Id: I0a35daf8a2d4cfd0979e30363c9fad30e7c0570b Issue-ID: SDC-1867 Signed-off-by: vempo --- .../org/onap/config/NonConfigResourceTest.java | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 common/onap-common-configuration-management/onap-configuration-management-core/src/test/java/org/onap/config/NonConfigResourceTest.java (limited to 'common/onap-common-configuration-management/onap-configuration-management-core/src/test') diff --git a/common/onap-common-configuration-management/onap-configuration-management-core/src/test/java/org/onap/config/NonConfigResourceTest.java b/common/onap-common-configuration-management/onap-configuration-management-core/src/test/java/org/onap/config/NonConfigResourceTest.java new file mode 100644 index 0000000000..7566a29749 --- /dev/null +++ b/common/onap-common-configuration-management/onap-configuration-management-core/src/test/java/org/onap/config/NonConfigResourceTest.java @@ -0,0 +1,96 @@ +/* + * Copyright © 2018 Nokia + * + * 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. + */ + +package org.onap.config; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.onap.config.NonConfigResource.CONFIG_LOCATION; +import static org.onap.config.NonConfigResource.NODE_CONFIG_LOCATION; + +import java.io.File; +import java.net.URISyntaxException; +import java.net.URL; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.Collections; +import java.util.Map; +import org.junit.Test; + +public class NonConfigResourceTest { + + private static final String RESOURCE_NAME = NonConfigResourceTest.class.getSimpleName() + ".class"; + private final URL sampleUrlResource = NonConfigResourceTest.class.getResource(RESOURCE_NAME); + private final String sampleResourcePath = sampleUrlResource.getPath(); + private final File sampleResourceFile = new File(sampleResourcePath); + + @Test + public void testShouldLocateResourceWhenAbsPathProvided2() { + Map properties = Collections.emptyMap(); + Path actualResourcePath = new NonConfigResource(properties::get).locate(sampleResourceFile.toString()); + assertEquals(0, actualResourcePath.compareTo(sampleResourceFile.toPath())); + } + + @Test + public void testShouldLocateResourceWhenPresentInFiles2() { + Map properties = Collections.emptyMap(); + NonConfigResource testedObject = new NonConfigResource(properties::get); + testedObject.add(sampleResourceFile); + Path thisFilePath = testedObject.locate(RESOURCE_NAME); + assertEquals(0, thisFilePath.compareTo(sampleResourceFile.toPath())); + } + + @Test + public void testShouldLocateResourceWhenNodeConfigPropertyIsSet2() { + + Map properties = Collections.singletonMap( + NODE_CONFIG_LOCATION, new File(sampleResourcePath).getParentFile().getPath()); + + NonConfigResource testedNonConfigResource = new NonConfigResource(properties::get); + System.getProperties().setProperty(NODE_CONFIG_LOCATION, + new File(sampleResourcePath).getParentFile().getPath()); + Path thisFilePath = testedNonConfigResource.locate(RESOURCE_NAME); + assertEquals(0, thisFilePath.compareTo(new File(sampleResourcePath).toPath())); + } + + @Test + public void testShouldLocateResourceWhenConfigPropertyIsSet2() { + + Map properties = Collections.singletonMap( + CONFIG_LOCATION, new File(sampleResourcePath).getParentFile().getPath()); + + NonConfigResource testedNonConfigResource = new NonConfigResource(properties::get); + Path thisFilePath = testedNonConfigResource.locate(RESOURCE_NAME); + assertEquals(0, thisFilePath.compareTo(new File(sampleResourcePath).toPath())); + } + + @Test + public void testShouldLocatePathWhenResourcePresentInUrls2() throws URISyntaxException { + Map properties = Collections.emptyMap(); + NonConfigResource testedObject = new NonConfigResource(properties::get); + testedObject.add(sampleUrlResource); + Path thisFilePath = testedObject.locate(RESOURCE_NAME); + assertEquals(0, thisFilePath.compareTo(Paths.get(sampleUrlResource.toURI()))); + } + + @Test + public void testShouldNotLocateResource2() { + Map properties = Collections.emptyMap(); + NonConfigResource testedObject = new NonConfigResource(properties::get); + Path thisFilePath = testedObject.locate("nonexistingresource"); + assertNull(thisFilePath); + } +} \ No newline at end of file -- cgit 1.2.3-korg