summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorputhuparambil.aditya <aditya.puthuparambil@bell.ca>2022-08-11 10:55:43 +0100
committerputhuparambil.aditya <aditya.puthuparambil@bell.ca>2022-08-11 14:00:58 +0100
commit3e81716f0bbbde2328cd0910bc25a05b73d3d48e (patch)
tree75600a50ce5a089cfdce6e5164651e9cf633f596
parent57ba6b73a739b3c6dbbe7c68c79359f443dfc33d (diff)
Get Node API fix
Issue-ID: CPS-1179 Signed-off-by: puthuparambil.aditya <aditya.puthuparambil@bell.ca> Change-Id: I1450ed5d05afd6dd30484eaf19b1e40fd586df8e
-rw-r--r--cps-service/src/main/java/org/onap/cps/utils/DataMapUtils.java11
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy10
2 files changed, 13 insertions, 8 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/utils/DataMapUtils.java b/cps-service/src/main/java/org/onap/cps/utils/DataMapUtils.java
index ff5204ff6..4413c6b08 100644
--- a/cps-service/src/main/java/org/onap/cps/utils/DataMapUtils.java
+++ b/cps-service/src/main/java/org/onap/cps/utils/DataMapUtils.java
@@ -2,6 +2,7 @@
* ============LICENSE_START=======================================================
* Copyright (C) 2021 Pantheon.tech
* Modifications (C) 2021-2022 Nordix Foundation
+ * Modifications Copyright (C) 2022 Bell Canada
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -90,10 +91,12 @@ public class DataMapUtils {
));
}
- private static String getNodeIdentifier(final String xpath) {
- final int fromIndex = xpath.lastIndexOf("/") + 1;
- final int toIndex = xpath.indexOf("[", fromIndex);
- return toIndex > 0 ? xpath.substring(fromIndex, toIndex) : xpath.substring(fromIndex);
+ private static String getNodeIdentifier(String xpath) {
+ if (xpath.endsWith("]")) {
+ xpath = xpath.substring(0, xpath.lastIndexOf('['));
+ }
+ final int fromIndex = xpath.lastIndexOf('/') + 1;
+ return xpath.substring(fromIndex);
}
private static String getNodeIdentifierWithPrefix(final String xpath, final String moduleNamePrefix) {
diff --git a/cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy
index 24e8061b5..7f2c638ff 100644
--- a/cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/utils/DataMapUtilsSpec.groovy
@@ -30,7 +30,7 @@ class DataMapUtilsSpec extends Specification {
def dataNode = buildDataNode(
"/parent",[parentLeaf:'parentLeafValue', parentLeafList:['parentLeafListEntry1','parentLeafListEntry2']],[
- buildDataNode('/parent/child-list[@id=1]',[listElementLeaf:'listElement1leafValue'],noChildren),
+ buildDataNode('/parent/child-list[@id=1/2]',[listElementLeaf:'listElement1leafValue'],noChildren),
buildDataNode('/parent/child-list[@id=2]',[listElementLeaf:'listElement2leafValue'],noChildren),
buildDataNode('/parent/child-object',[childLeaf:'childLeafValue'],
[buildDataNode('/parent/child-object/grand-child-object',[grandChildLeaf:'grandChildLeafValue'],noChildren)]
@@ -88,9 +88,11 @@ class DataMapUtilsSpec extends Specification {
then: 'the correct modified node identifier is given'
assert result == expectedNodeIdentifier
where: 'the following parameters are used'
- scenario | xPath | expectedNodeIdentifier
- 'container xpath' | '/bookstore' | 'sampleModuleName:bookstore'
- 'xpath contains list attribute' | '/bookstore/categories[@code=1]' | 'sampleModuleName:categories'
+ scenario | xPath | expectedNodeIdentifier
+ 'container xpath' | '/bookstore' | 'sampleModuleName:bookstore'
+ 'xpath contains list attribute' | '/bookstore/categories[@code=1]' | 'sampleModuleName:categories'
+ 'xpath contains list attributes with /' | '/bookstore/categories[@code=1/2]' | 'sampleModuleName:categories'
+
}
}