Modify lcm events to include dataProducerIdentifier and moduleSetTag (CPS-1964 3)
[cps.git] / cps-ncmp-service / src / test / groovy / org / onap / cps / ncmp / api / impl / events / lcm / LcmEventsCreatorSpec.groovy
index 0917953..bef2963 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * ============LICENSE_START=======================================================
- * Copyright (C) 2022-2023 Nordix Foundation
+ * Copyright (C) 2022-2024 Nordix Foundation
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -173,4 +173,21 @@ class LcmEventsCreatorSpec extends Specification {
             assert result.eventCorrelationId == cmHandleId
             assert result.eventId != null
     }
+
+    def 'Map the LcmEvent for alternate ID, data producer identifier, and module set tag when they contain #scenario'() {
+        given: 'NCMP cm handle details with current and old values for alternate ID, module set tag, and data producer identifier'
+            def existingNcmpServiceCmHandle = new NcmpServiceCmHandle(cmHandleId: cmHandleId, alternateId: existingAlternateId, moduleSetTag: existingModuleSetTag, dataProducerIdentifier: existingDataProducerIdentifier, compositeState: new CompositeState(dataSyncEnabled: false))
+            def targetNcmpServiceCmHandle = new NcmpServiceCmHandle(cmHandleId: cmHandleId, alternateId: targetAlternateId, moduleSetTag: targetModuleSetTag, dataProducerIdentifier: targetDataProducerIdentifier, compositeState: new CompositeState(dataSyncEnabled: false))
+        when: 'the event is populated'
+            def result = objectUnderTest.populateLcmEvent(cmHandleId, targetNcmpServiceCmHandle, existingNcmpServiceCmHandle)
+        then: 'the alternate ID, module set tag, and data producer identifier are present or are an empty string in the payload'
+            assert result.event.alternateId == targetAlternateId
+            assert result.event.moduleSetTag == targetModuleSetTag
+            assert result.event.dataProducerIdentifier == targetDataProducerIdentifier
+        where: 'the following values are provided for the alternate ID, module set tag, and data producer identifier'
+            scenario                                     | existingAlternateId | targetAlternateId | existingModuleSetTag | targetModuleSetTag | existingDataProducerIdentifier | targetDataProducerIdentifier
+            'same target and existing values'            | 'someAlternateId'   | 'someAlternateId' | 'someModuleSetTag'   | 'someModuleSetTag' | 'someDataProducerIdentifier'   | 'someDataProducerIdentifier'
+            'blank target and existing values'           | ''                  | ''                | ''                   | ''                 | ''                             | ''
+            'new target value and blank existing values' | ''                  | 'someAlternateId' | ''                   | 'someAlternateId'  | ''                             | 'someDataProducerIdentifier'
+    }
 }
\ No newline at end of file