From: mpriyank Date: Wed, 31 Jul 2024 15:29:01 +0000 (+0100) Subject: Handle duplicate targets NcmpOut event X-Git-Tag: 3.5.2~30^2 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=f11f294188ac8f1891c4468e2242462127c73930;p=cps.git Handle duplicate targets NcmpOut event - Accpted , Rejected and Pending targets in the NcmpOut response to have unique values hence changing the datastructre to Set. Issue-ID: CPS-2338 Change-Id: I24a109fad4c854eff1b052df38947cc121445bb9 Signed-off-by: mpriyank --- diff --git a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-out-event-schema-1.0.0.json b/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-out-event-schema-1.0.0.json index 0c8d02a613..0e6e29049c 100644 --- a/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-out-event-schema-1.0.0.json +++ b/cps-ncmp-events/src/main/resources/schemas/cmnotificationsubscription/ncmp-out-event-schema-1.0.0.json @@ -28,25 +28,19 @@ "description": "The unique subscription id" }, "acceptedTargets": { - "type": "array", - "description": "List of accepted targets", - "items": { - "type": "string" - } + "type": "object", + "existingJavaType": "java.util.Collection", + "description": "Unique Collection of accepted targets" }, "rejectedTargets": { - "type": "array", - "description": "List of rejected targets", - "items": { - "type": "string" - } + "type": "object", + "existingJavaType": "java.util.Collection", + "description": "Unique Collection of rejected targets" }, "pendingTargets": { - "type": "array", - "description": "List of pending targets", - "items": { - "type": "string" - } + "type": "object", + "existingJavaType": "java.util.Collection", + "description": "Unique Collection of pending targets" } }, "required": [ diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cmnotificationsubscription/ncmp/NcmpOutEventMapper.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cmnotificationsubscription/ncmp/NcmpOutEventMapper.java index ffd4b014fb..afff9d1298 100644 --- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cmnotificationsubscription/ncmp/NcmpOutEventMapper.java +++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/impl/cmnotificationsubscription/ncmp/NcmpOutEventMapper.java @@ -21,6 +21,8 @@ package org.onap.cps.ncmp.impl.cmnotificationsubscription.ncmp; import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; import java.util.List; import java.util.Map; import lombok.RequiredArgsConstructor; @@ -76,9 +78,9 @@ public class NcmpOutEventMapper { final Map dmiSubscriptionsPerDmi, final Data cmSubscriptionData) { - final List acceptedCmHandleIds = new ArrayList<>(); - final List pendingCmHandleIds = new ArrayList<>(); - final List rejectedCmHandleIds = new ArrayList<>(); + final Collection acceptedCmHandleIds = new HashSet<>(); + final Collection pendingCmHandleIds = new HashSet<>(); + final Collection rejectedCmHandleIds = new HashSet<>(); dmiSubscriptionsPerDmi.forEach((dmiPluginName, dmiSubscriptionDetails) -> { final CmSubscriptionStatus cmSubscriptionStatus = diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/cmnotificationsubscription/ncmp/NcmpOutEventMapperSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/cmnotificationsubscription/ncmp/NcmpOutEventMapperSpec.groovy index 2251a33466..d3c4026962 100644 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/cmnotificationsubscription/ncmp/NcmpOutEventMapperSpec.groovy +++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/impl/cmnotificationsubscription/ncmp/NcmpOutEventMapperSpec.groovy @@ -53,9 +53,9 @@ class NcmpOutEventMapperSpec extends Specification { then: 'event is mapped correctly for the subscription' result.data.subscriptionId == 'test-subscription' and: 'the cm handle ids are part of correct list' - result.data.pendingTargets == ['ch-A'] - result.data.acceptedTargets == ['ch-B'] - result.data.rejectedTargets == ['ch-C'] + result.data.pendingTargets == ['ch-A'] as Set + result.data.acceptedTargets == ['ch-B'] as Set + result.data.rejectedTargets == ['ch-C'] as Set } def 'Check for Cm Notification Rejected Subscription Outgoing event mapping'() {