From ff4832e4ed2a5b6aaf9093f7d229c27c5d5b9aa5 Mon Sep 17 00:00:00 2001 From: Bruno Sakoto Date: Tue, 23 Mar 2021 14:42:00 -0400 Subject: Fix to store data for 2 anchors using same model This change deletes the database index on fragment table for dataspace and xpath. Issue-ID: CPS-300 Signed-off-by: Bruno Sakoto Change-Id: I586cc38f7ed00a16f751ed4dbe3b514226c62657 --- .../cps/spi/impl/CpsDataPersistenceServiceSpec.groovy | 17 +++++++++++++++++ .../org/onap/cps/spi/impl/CpsPersistenceSpecBase.groovy | 2 ++ 2 files changed, 19 insertions(+) (limited to 'cps-ri/src/test/groovy/org/onap') diff --git a/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsDataPersistenceServiceSpec.groovy b/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsDataPersistenceServiceSpec.groovy index 51f780940..231a57283 100644 --- a/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsDataPersistenceServiceSpec.groovy +++ b/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsDataPersistenceServiceSpec.groovy @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation * Modifications Copyright (C) 2021 Pantheon.tech + * Modifications Copyright (C) 2021 Bell Canada. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,6 +92,22 @@ class CpsDataPersistenceServiceSpec extends CpsPersistenceSpecBase { grandchildFragment.xpath == grandChildXpath } + @Sql([CLEAR_DATA, SET_DATA]) + def 'Store data node for multiple anchors using the same schema.'() { + def xpath = "/parent-new" + given: 'a fragment is stored for an anchor' + objectUnderTest.storeDataNode(DATASPACE_NAME, ANCHOR_NAME1, createDataNodeTree(xpath)) + when: 'another fragment is stored for an other anchor, using the same schema set' + objectUnderTest.storeDataNode(DATASPACE_NAME, ANCHOR_NAME3, createDataNodeTree(xpath)) + then: 'both fragments can be retrieved by their xpath' + def fragment1 = getFragmentByXpath(DATASPACE_NAME, ANCHOR_NAME1, xpath) + fragment1.anchor.name == ANCHOR_NAME1 + fragment1.xpath == xpath + def fragment2 = getFragmentByXpath(DATASPACE_NAME, ANCHOR_NAME3, xpath) + fragment2.anchor.name == ANCHOR_NAME3 + fragment2.xpath == xpath + } + @Unroll @Sql([CLEAR_DATA, SET_DATA]) def 'Store datanode error scenario: #scenario.'() { diff --git a/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsPersistenceSpecBase.groovy b/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsPersistenceSpecBase.groovy index c8a8b9bf1..4ef068a25 100644 --- a/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsPersistenceSpecBase.groovy +++ b/cps-ri/src/test/groovy/org/onap/cps/spi/impl/CpsPersistenceSpecBase.groovy @@ -2,6 +2,7 @@ * ============LICENSE_START======================================================= * Copyright (C) 2021 Nordix Foundation * Modifications Copyright (C) 2021 Pantheon.tech + * Modifications Copyright (C) 2021 Bell Canada. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the 'License'); * you may not use this file except in compliance with the License. @@ -57,6 +58,7 @@ class CpsPersistenceSpecBase extends Specification { static final String SCHEMA_SET_NAME2 = 'SCHEMA-SET-002' static final String ANCHOR_NAME1 = 'ANCHOR-001' static final String ANCHOR_NAME2 = 'ANCHOR-002' + static final String ANCHOR_NAME3 = 'ANCHOR-003' static final String ANCHOR_FOR_DATA_NODES_WITH_LEAVES = 'ANCHOR-003' } -- cgit 1.2.3-korg