diff options
author | mpriyank <priyank.maheshwari@est.tech> | 2024-07-31 16:29:01 +0100 |
---|---|---|
committer | mpriyank <priyank.maheshwari@est.tech> | 2024-07-31 16:29:05 +0100 |
commit | f11f294188ac8f1891c4468e2242462127c73930 (patch) | |
tree | e31bd591fbe2175582eb0b5d76bf87d5025f6d88 | |
parent | b66c993cc2ab670db0f62afe22bb0b5020e5dc40 (diff) |
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 <priyank.maheshwari@est.tech>
3 files changed, 17 insertions, 21 deletions
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<String>", + "description": "Unique Collection of accepted targets" }, "rejectedTargets": { - "type": "array", - "description": "List of rejected targets", - "items": { - "type": "string" - } + "type": "object", + "existingJavaType": "java.util.Collection<String>", + "description": "Unique Collection of rejected targets" }, "pendingTargets": { - "type": "array", - "description": "List of pending targets", - "items": { - "type": "string" - } + "type": "object", + "existingJavaType": "java.util.Collection<String>", + "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<String, DmiCmSubscriptionDetails> dmiSubscriptionsPerDmi, final Data cmSubscriptionData) { - final List<String> acceptedCmHandleIds = new ArrayList<>(); - final List<String> pendingCmHandleIds = new ArrayList<>(); - final List<String> rejectedCmHandleIds = new ArrayList<>(); + final Collection<String> acceptedCmHandleIds = new HashSet<>(); + final Collection<String> pendingCmHandleIds = new HashSet<>(); + final Collection<String> 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'() { |