From 4e596846aa6f1b799487c553d6830004489d96a1 Mon Sep 17 00:00:00 2001 From: lukegleeson Date: Tue, 28 Jun 2022 12:15:33 +0100 Subject: Simplified 'External' lock reason Mapping Refactored LOCKED_MISBEHAVING -> LOCKED_MODULE_SYNC_FAILED CompositeStateMapper will change internal reason LOCKED_MODULE_SYNC_FAILED to external reason LOCKED_MISBEHAVING for client payloads Changed openapi description of lock-reason to reflect only enum currently available LOCKED_MISBEHAVING Issue-ID: CPS-1099 Signed-off-by: lukegleeson Change-Id: I9cda45f6c30b94684ee1c8ad0c49e35a3a824d52 --- .../controller/NetworkCmProxyControllerSpec.groovy | 4 ++-- .../rest/mapper/CmHandleStateMapperTest.groovy | 23 ++++++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) (limited to 'cps-ncmp-rest/src/test') diff --git a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy index 729df9ce4..7b123e8a6 100644 --- a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy +++ b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/controller/NetworkCmProxyControllerSpec.groovy @@ -432,7 +432,7 @@ class NetworkCmProxyControllerSpec extends Specification { def compositeStateTestObject() { new CompositeState(cmHandleState: CmHandleState.ADVISED, - lockReason: CompositeState.LockReason.builder().lockReasonCategory(LockReasonCategory.LOCKED_MISBEHAVING).details("lock misbehaving details").build(), + lockReason: CompositeState.LockReason.builder().lockReasonCategory(LockReasonCategory.LOCKED_MODULE_SYNC_FAILED).details("lock details").build(), lastUpdateTime: formattedDateAndTime.toString(), dataSyncEnabled: false, dataStores: dataStores()) @@ -448,7 +448,7 @@ class NetworkCmProxyControllerSpec extends Specification { '"state":', '"cmHandleState":"ADVISED"', '"reason":"LOCKED_MISBEHAVING"', - '"details":"lock misbehaving details"', + '"details":"lock details"', '"lastUpdateTime":"2022-12-31T20:30:40.000+0000"', '"dataSyncEnabled":false', '"dataSyncState":', diff --git a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/mapper/CmHandleStateMapperTest.groovy b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/mapper/CmHandleStateMapperTest.groovy index 42fda770b..677cf6612 100644 --- a/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/mapper/CmHandleStateMapperTest.groovy +++ b/cps-ncmp-rest/src/test/groovy/org/onap/cps/ncmp/rest/mapper/CmHandleStateMapperTest.groovy @@ -38,25 +38,40 @@ class CmHandleStateMapperTest extends Specification { .format(OffsetDateTime.of(2022, 12, 31, 20, 30, 40, 1, ZoneOffset.UTC)) def objectUnderTest = Mappers.getMapper(CmHandleStateMapper) - def 'Composite State to Rest Output CmHandleState'() { + def 'Composite State to CmHandleCompositeState'() { given: 'a composite state model' def compositeState = new CompositeStateBuilder() .withCmHandleState(CmHandleState.ADVISED) .withLastUpdatedTime(formattedDateAndTime.toString()) - .withLockReason(LockReasonCategory.LOCKED_MISBEHAVING, 'locked other details') + .withLockReason(LockReasonCategory.LOCKED_MODULE_SYNC_FAILED, 'locked details') .withOperationalDataStores(DataStoreSyncState.SYNCHRONIZED, formattedDateAndTime).build() compositeState.setDataSyncEnabled(false) when: 'mapper is called' - def result = objectUnderTest.toCmHandleCompositeState(compositeState) + def result = objectUnderTest.toCmHandleCompositeStateExternalLockReason(compositeState) then: 'result is of the correct type' assert result.class == CmHandleCompositeState.class and: 'mapped result should have correct values' assert !result.dataSyncEnabled assert result.lastUpdateTime == formattedDateAndTime assert result.lockReason.reason == 'LOCKED_MISBEHAVING' - assert result.lockReason.details == 'locked other details' + assert result.lockReason.details == 'locked details' assert result.cmHandleState == 'ADVISED' assert result.dataSyncState.operational.getState() != null } + def 'Internal to External Lock Reason Mapping of #scenario'() { + given: 'a LOCKED composite state with locked reason of #scenario' + def compositeState = new CompositeStateBuilder() + .withCmHandleState(CmHandleState.LOCKED) + .withLockReason(lockReason, '').build() + when: 'the composite state is mapped to a CMHandle composite state' + def result = objectUnderTest.toCmHandleCompositeStateExternalLockReason(compositeState) + then: 'the composite state contains the expected lock Reason and details' + result.getLockReason().getReason() == expectedExternalLockReason + where: + scenario | lockReason || expectedExternalLockReason + 'LOCKED_MODULE_SYNC_FAILED' | LockReasonCategory.LOCKED_MODULE_SYNC_FAILED || 'LOCKED_MISBEHAVING' + 'null value' | null || null + } + } -- cgit 1.2.3-korg