X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cps-ncmp-service%2Fsrc%2Ftest%2Fgroovy%2Forg%2Fonap%2Fcps%2Fncmp%2Fapi%2Finventory%2Fsync%2FModuleSyncTasksSpec.groovy;h=8698136d65a7c89f92336e2afccb1763a203cc7e;hb=3ccd62ed40e96dbe2970de1433b2ebdbe014d4aa;hp=a11f14838c23bdc7966e7513e4e3352c9ce1486b;hpb=964fd24568228c6d9d3b93925b5b27dfed911714;p=cps.git diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncTasksSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncTasksSpec.groovy index a11f14838..8698136d6 100644 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncTasksSpec.groovy +++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/inventory/sync/ModuleSyncTasksSpec.groovy @@ -21,9 +21,15 @@ package org.onap.cps.ncmp.api.inventory.sync +import ch.qos.logback.classic.Level +import ch.qos.logback.classic.Logger +import ch.qos.logback.classic.spi.ILoggingEvent +import ch.qos.logback.core.read.ListAppender import com.hazelcast.config.Config import com.hazelcast.instance.impl.HazelcastInstanceFactory import com.hazelcast.map.IMap +import org.junit.jupiter.api.AfterEach +import org.junit.jupiter.api.BeforeEach import org.onap.cps.ncmp.api.impl.events.lcm.LcmEventsCmHandleStateHandler import org.onap.cps.ncmp.api.impl.inventory.sync.ModuleSyncService import org.onap.cps.ncmp.api.impl.inventory.sync.ModuleSyncTasks @@ -35,11 +41,25 @@ import org.onap.cps.ncmp.api.impl.inventory.CompositeStateBuilder import org.onap.cps.ncmp.api.impl.inventory.InventoryPersistence import org.onap.cps.ncmp.api.impl.inventory.LockReasonCategory import org.onap.cps.spi.model.DataNode +import org.slf4j.LoggerFactory import spock.lang.Specification import java.util.concurrent.atomic.AtomicInteger class ModuleSyncTasksSpec extends Specification { + def logger = Spy(ListAppender) + + @BeforeEach + void setup() { + ((Logger) LoggerFactory.getLogger(ModuleSyncTasks.class)).addAppender(logger); + logger.start(); + } + + @AfterEach + void teardown() { + ((Logger) LoggerFactory.getLogger(ModuleSyncTasks.class)).detachAndStopAllAppenders(); + } + def mockInventoryPersistence = Mock(InventoryPersistence) def mockSyncUtils = Mock(SyncUtils) @@ -140,6 +160,29 @@ class ModuleSyncTasksSpec extends Specification { assert moduleSyncStartedOnCmHandles.get('other-cm-handle') != null } + def 'Remove already processed cm handle id from hazelcast map'() { + given: 'hazelcast map contains cm handle id' + moduleSyncStartedOnCmHandles.put('ch-1', 'started') + when: 'remove cm handle entry' + objectUnderTest.removeResetCmHandleFromModuleSyncMap('ch-1') + then: 'an event is logged with level INFO' + def loggingEvent = getLoggingEvent() + assert loggingEvent.level == Level.INFO + and: 'the log indicates the cm handle entry is removed successfully' + assert loggingEvent.formattedMessage == 'ch-1 removed from in progress map' + } + + def 'Remove non-existing cm handle id from hazelcast map'() { + given: 'hazelcast map does not contains cm handle id' + def result = moduleSyncStartedOnCmHandles.get('non-existing-cm-handle') + assert result == null + when: 'remove cm handle entry from hazelcast map' + objectUnderTest.removeResetCmHandleFromModuleSyncMap('non-existing-cm-handle') + then: 'no event is logged' + def loggingEvent = getLoggingEvent() + assert loggingEvent == null + } + def advisedCmHandleAsDataNode(cmHandleId) { return new DataNode(anchorName: cmHandleId, leaves: ['id': cmHandleId, 'cm-handle-state': 'ADVISED']) } @@ -167,4 +210,8 @@ class ModuleSyncTasksSpec extends Specification { def resetModuleSyncStartedOnCmHandles(moduleSyncStartedOnCmHandles) { moduleSyncStartedOnCmHandles.clear(); } + + def getLoggingEvent() { + return logger.list[0] + } }