diff options
author | danielhanrahan <daniel.hanrahan@est.tech> | 2023-04-05 16:16:56 +0100 |
---|---|---|
committer | danielhanrahan <daniel.hanrahan@est.tech> | 2023-04-11 13:20:45 +0100 |
commit | fe25cdbf4e97fb4d3bdbb32d5b0c02b75f80ba72 (patch) | |
tree | d2e3774ba99a94a2ea571cdb956984e88a71b386 | |
parent | da0192e77e40239a1f3ffb3d71dcf958e6e7cc8f (diff) |
Populate Dataspace field of DataNode
Issue-ID: CPS-1603
Signed-off-by: danielhanrahan <daniel.hanrahan@est.tech>
Change-Id: I85aca8bccc28d36aa4cefa0a32cb9bdf2156618a
3 files changed, 27 insertions, 2 deletions
diff --git a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java index aa631d1b1a..369e5289b1 100644 --- a/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java +++ b/cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java @@ -458,6 +458,7 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService return new DataNodeBuilder() .withXpath(fragmentEntity.getXpath()) .withLeaves(leaves) + .withDataspace(fragmentEntity.getAnchor().getDataspace().getName()) .withAnchor(fragmentEntity.getAnchor().getName()) .withChildDataNodes(childDataNodes).build(); } diff --git a/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java b/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java index 6fc36ebb61..e212933388 100644 --- a/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java +++ b/cps-service/src/main/java/org/onap/cps/spi/model/DataNodeBuilder.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2021 Bell Canada. All rights reserved. * Modifications Copyright (C) 2021 Pantheon.tech - * Modifications Copyright (C) 2022 Nordix Foundation. + * Modifications Copyright (C) 2022-2023 Nordix Foundation. * Modifications Copyright (C) 2022-2023 TechMahindra Ltd. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); @@ -54,6 +54,7 @@ public class DataNodeBuilder { private String parentNodeXpath = ""; private Map<String, Serializable> leaves = Collections.emptyMap(); private Collection<DataNode> childDataNodes = Collections.emptySet(); + private String dataspaceName; private String anchorName; /** @@ -90,6 +91,17 @@ public class DataNodeBuilder { } /** + * To use dataspace name for creating {@link DataNode}. + * + * @param dataspaceName dataspace name for the data node + * @return DataNodeBuilder + */ + public DataNodeBuilder withDataspace(final String dataspaceName) { + this.dataspaceName = dataspaceName; + return this; + } + + /** * To use anchor name for creating {@link DataNode}. * * @param anchorName anchor name for the data node @@ -165,6 +177,7 @@ public class DataNodeBuilder { dataNode.setModuleNamePrefix(moduleNamePrefix); dataNode.setLeaves(leaves); dataNode.setChildDataNodes(childDataNodes); + dataNode.setDataspace(dataspaceName); dataNode.setAnchorName(anchorName); return dataNode; } diff --git a/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy index c333911fcc..ddf8dcf874 100644 --- a/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy +++ b/integration-test/src/test/groovy/org/onap/cps/integration/functional/CpsDataServiceIntegrationSpec.groovy @@ -21,12 +21,13 @@ package org.onap.cps.integration.functional +import org.onap.cps.api.CpsDataService import org.onap.cps.integration.base.FunctionalSpecBase import org.onap.cps.spi.FetchDescendantsOption class CpsDataServiceIntegrationSpec extends FunctionalSpecBase { - def objectUnderTest + CpsDataService objectUnderTest def setup() { objectUnderTest = cpsDataService } @@ -44,4 +45,14 @@ class CpsDataServiceIntegrationSpec extends FunctionalSpecBase { FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS || 8 new FetchDescendantsOption(2) || 8 } + + def 'Read bookstore top-level container(s) has correct dataspace and anchor.'() { + when: 'get data nodes for bookstore container' + def result = objectUnderTest.getDataNodes(FUNCTIONAL_TEST_DATASPACE, BOOKSTORE_ANCHOR, '/bookstore', FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS) + then: 'the correct dataspace was queried' + assert result.dataspace.toSet() == [FUNCTIONAL_TEST_DATASPACE].toSet() + and: 'the correct anchor was queried' + assert result.anchorName.toSet() == [BOOKSTORE_ANCHOR].toSet() + } + } |