diff options
author | Toine Siebelink <toine.siebelink@est.tech> | 2024-10-29 18:32:52 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2024-10-29 18:32:52 +0000 |
commit | 9f680eedc69de5aadd4c905c242fbabb232ad106 (patch) | |
tree | 25426035922f6af149c15d94879d504e983cc697 /cps-ncmp-service/src/test/groovy/org/onap | |
parent | 0e39cb260532a11bb8fea755ed775f0623fb8101 (diff) | |
parent | 873480b2a8f99825353582e9d0d3beae6a5ecbde (diff) |
Merge "Fix failing CSIT and add unit test proving the bug"
Diffstat (limited to 'cps-ncmp-service/src/test/groovy/org/onap')
-rw-r--r-- | cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasksSpec.groovy | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasksSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasksSpec.groovy index 4d715d28c9..794bbc99d3 100644 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasksSpec.groovy +++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/inventory/sync/ModuleSyncTasksSpec.groovy @@ -34,6 +34,7 @@ import org.onap.cps.ncmp.impl.inventory.InventoryPersistence import org.onap.cps.ncmp.impl.inventory.models.CmHandleState import org.onap.cps.ncmp.impl.inventory.models.YangModelCmHandle import org.onap.cps.ncmp.impl.inventory.sync.lcm.LcmEventsCmHandleStateHandler +import org.onap.cps.spi.exceptions.DataNodeNotFoundException import org.onap.cps.spi.model.DataNode import org.slf4j.LoggerFactory import spock.lang.Specification @@ -121,6 +122,26 @@ class ModuleSyncTasksSpec extends Specification { 'module upgrade' | MODULE_UPGRADE | 'Upgrade in progress' || MODULE_UPGRADE_FAILED } + // TODO Update this test once the bug CPS-2474 is fixed + def 'Module sync fails if a handle gets deleted during module sync.'() { + given: 'cm handles in an ADVISED state' + def cmHandle1 = cmHandleAsDataNodeByIdAndState('cm-handle-1', CmHandleState.ADVISED) + def cmHandle2 = cmHandleAsDataNodeByIdAndState('cm-handle-2', CmHandleState.ADVISED) + and: 'inventory persistence returns the first handle with ADVISED state' + mockInventoryPersistence.getCmHandleState('cm-handle-1') >> new CompositeState(cmHandleState: CmHandleState.ADVISED) + and: 'inventory persistence cannot find the second handle' + mockInventoryPersistence.getCmHandleState('cm-handle-2') >> { throw new DataNodeNotFoundException('dataspace', 'anchor', 'xpath') } + when: 'module sync poll is executed' + objectUnderTest.performModuleSync([cmHandle1, cmHandle2], batchCount) + then: 'an exception is thrown' + thrown(DataNodeNotFoundException) + and: 'even though the existing cm-handle did sync' + 1 * mockModuleSyncService.syncAndCreateSchemaSetAndAnchor(_) >> { args -> assert args[0].id == 'cm-handle-1' } + and: 'logs report the cm-handle is in READY state' + assert getLoggingEvent().formattedMessage == 'cm-handle-1 is now in READY state' + and: 'this is impossible as the state handler was not called at all' + 0 * mockLcmEventsCmHandleStateHandler.updateCmHandleStateBatch(_) + } def 'Reset failed CM Handles #scenario.'() { given: 'cm handles in an locked state' |