Refractor code to use the new LcmEvent schema
-Old schema deleted and comments from tests are removed
-EventDateTimeFormatter utility added
-From LcmEventsCreator.populateLcmEvent the NcmpServiceCmHandle param
removed and tests are fixed accordingly
-Changes made in test of the LcmEventsCreator for payload testing
to make it more clear
Issue-ID: CPS-1147
Change-Id: Id87c81f2755a6617a0fc68ba92a3d0e3170fd20f
Signed-off-by: bmiklos <miklos.baranyak@est.tech>
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCreatorSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCreatorSpec.groovy
index b578700..aa79d63 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCreatorSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsCreatorSpec.groovy
@@ -20,10 +20,6 @@
package org.onap.cps.ncmp.api.impl.event.lcm
-import org.onap.cps.ncmp.api.impl.event.lcm.LcmEventsCreator
-import org.onap.cps.ncmp.api.inventory.CmHandleState
-import org.onap.cps.ncmp.api.inventory.CompositeStateBuilder
-import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle
import spock.lang.Specification
class LcmEventsCreatorSpec extends Specification {
@@ -31,17 +27,16 @@
def objectUnderTest = new LcmEventsCreator()
def cmHandleId = 'test-cm-handle'
- def 'Map the LcmEvent for operation #operation'() {
- given: 'NCMP cm handle details'
- def ncmpServiceCmHandle = new NcmpServiceCmHandle(cmHandleId: cmHandleId, compositeState: new CompositeStateBuilder().withCmHandleState(CmHandleState.READY).build(),
- publicProperties: ['publicProperty1': 'value1', 'publicProperty2': 'value2'])
+ def 'Map the LcmEvent'() {
when: 'the event is populated'
- def result = objectUnderTest.populateLcmEvent(cmHandleId, ncmpServiceCmHandle)
+ def result = objectUnderTest.populateLcmEvent(cmHandleId)
then: 'event header is mapped correctly'
assert result.eventSource == 'org.onap.ncmp'
assert result.eventCorrelationId == cmHandleId
- and: 'event payload is mapped correctly'
- assert result.event.cmhandleProperties.size() == 1
- assert result.event.cmhandleProperties[0] == ['publicProperty1': 'value1', 'publicProperty2': 'value2']
+ and: 'the result has the correct cm handle id'
+ assert result.event.cmHandleId == cmHandleId
+ and: 'the old and new values are not set yet'
+ assert result.event.oldValues == null
+ assert result.event.newValues == null
}
}
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsPublisherSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsPublisherSpec.groovy
index 8b9addc..f2cd2b5 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsPublisherSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsPublisherSpec.groovy
@@ -26,8 +26,8 @@
import org.onap.cps.ncmp.api.utils.MessagingSpec
import org.onap.cps.ncmp.utils.TestUtils
import org.onap.cps.utils.JsonObjectMapper
-import org.onap.ncmp.cmhandle.lcm.event.Event
-import org.onap.ncmp.cmhandle.lcm.event.NcmpEvent
+import org.onap.ncmp.cmhandle.event.lcm.Event
+import org.onap.ncmp.cmhandle.event.lcm.LcmEvent
import org.spockframework.spring.SpringBean
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.context.SpringBootTest
@@ -46,40 +46,38 @@
def testTopic = 'ncmp-events-test'
@SpringBean
- LcmEventsPublisher ncmpEventsPublisher = new LcmEventsPublisher(kafkaTemplate)
+ LcmEventsPublisher lcmEventsPublisher = new LcmEventsPublisher(kafkaTemplate)
@Autowired
JsonObjectMapper jsonObjectMapper
- def 'Produce and Consume Ncmp Event'() {
+ def 'Produce and Consume Lcm Event'() {
given: 'event key and event data'
- def eventKey = 'ncmp'
- def eventData = new NcmpEvent(eventId: 'test-uuid',
+ def eventKey = 'lcm'
+ def eventData = new LcmEvent(
+ eventId: 'test-uuid',
eventCorrelationId: 'cmhandle-as-correlationid',
- eventSchema: URI.create('org.onap.ncmp.cmhandle.lcm.event:v1'),
- eventSource: URI.create('org.onap.ncmp'),
+ eventSource: 'org.onap.ncmp',
eventTime: '2022-12-31T20:30:40.000+0000',
eventType: 'org.onap.ncmp.cmhandle.lcm.event',
- event: new Event(cmHandleId: 'cmhandle-test', cmhandleState: 'READY', cmhandleProperties: [['publicProperty1': 'value1'], ['publicProperty2': 'value2']]))
- and: 'we have an expected NcmpEvent'
- def expectedJsonString = TestUtils.getResourceFileContent('expectedNcmpEvent.json')
- def expectedNcmpEvent = jsonObjectMapper.convertJsonString(expectedJsonString, NcmpEvent.class)
+ eventSchema: 'org.onap.ncmp.cmhandle.lcm.event',
+ eventSchemaVersion: 'v1',
+ event: new Event(cmHandleId: 'cmhandle-test'))
and: 'consumer has a subscription'
kafkaConsumer.subscribe([testTopic] as List<String>)
when: 'an event is published'
- ncmpEventsPublisher.publishEvent(testTopic, eventKey, eventData)
+ lcmEventsPublisher.publishEvent(testTopic, eventKey, eventData)
and: 'topic is polled'
def records = kafkaConsumer.poll(Duration.ofMillis(1500))
- then: 'no exception is thrown'
- noExceptionThrown()
- and: 'poll returns one record'
+ then: 'poll returns one record'
assert records.size() == 1
and: 'record key matches the expected event key'
def record = records.iterator().next()
assert eventKey == record.key
and: 'record matches the expected event'
- assert expectedNcmpEvent == jsonObjectMapper.convertJsonString(record.value, NcmpEvent.class)
-
+ def expectedJsonString = TestUtils.getResourceFileContent('expectedLcmEvent.json')
+ def expectedLcmEvent = jsonObjectMapper.convertJsonString(expectedJsonString, LcmEvent.class)
+ assert expectedLcmEvent == jsonObjectMapper.convertJsonString(record.value, LcmEvent.class)
}
}
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsServiceSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsServiceSpec.groovy
index 3dab5af..1eae357 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsServiceSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/event/lcm/LcmEventsServiceSpec.groovy
@@ -20,7 +20,7 @@
package org.onap.cps.ncmp.api.impl.event.lcm
-import org.onap.ncmp.cmhandle.lcm.event.NcmpEvent
+import org.onap.ncmp.cmhandle.event.lcm.LcmEvent
import spock.lang.Specification
class LcmEventsServiceSpec extends Specification {
@@ -30,15 +30,15 @@
def objectUnderTest = new LcmEventsService(mockLcmEventsPublisher)
def 'Create and Publish lcm event where events are #scenario'() {
- given: 'a cm handle id and Ncmp Event'
+ given: 'a cm handle id and Lcm Event'
def cmHandleId = 'test-cm-handle-id'
- def ncmpEvent = new NcmpEvent(eventId: UUID.randomUUID().toString(), eventCorrelationId: cmHandleId)
- and: 'notifications enabled is #notificationsEnabled'
+ def lcmEvent = new LcmEvent(eventId: UUID.randomUUID().toString(), eventCorrelationId: cmHandleId)
+ and: 'notificationsEnabled is #notificationsEnabled and it will be true as default'
objectUnderTest.notificationsEnabled = notificationsEnabled
when: 'service is called to publish lcm event'
- objectUnderTest.publishLcmEvent('test-cm-handle-id', ncmpEvent)
+ objectUnderTest.publishLcmEvent('test-cm-handle-id', lcmEvent)
then: 'publisher is called #expectedTimesMethodCalled times'
- expectedTimesMethodCalled * mockLcmEventsPublisher.publishEvent(_, cmHandleId, ncmpEvent)
+ expectedTimesMethodCalled * mockLcmEventsPublisher.publishEvent(_, cmHandleId, lcmEvent)
where: 'the following values are used'
scenario | notificationsEnabled || expectedTimesMethodCalled
'enabled' | true || 1
diff --git a/cps-ncmp-service/src/test/resources/expectedLcmEvent.json b/cps-ncmp-service/src/test/resources/expectedLcmEvent.json
new file mode 100644
index 0000000..1db16ee
--- /dev/null
+++ b/cps-ncmp-service/src/test/resources/expectedLcmEvent.json
@@ -0,0 +1,12 @@
+{
+ "eventId": "test-uuid",
+ "eventCorrelationId": "cmhandle-as-correlationid",
+ "eventTime": "2022-12-31T20:30:40.000+0000",
+ "eventSource": "org.onap.ncmp",
+ "eventType": "org.onap.ncmp.cmhandle.lcm.event",
+ "eventSchema": "org.onap.ncmp.cmhandle.lcm.event",
+ "eventSchemaVersion": "v1",
+ "event": {
+ "cmHandleId": "cmhandle-test"
+ }
+}
\ No newline at end of file
diff --git a/cps-ncmp-service/src/test/resources/expectedNcmpEvent.json b/cps-ncmp-service/src/test/resources/expectedNcmpEvent.json
deleted file mode 100644
index 3d457a0..0000000
--- a/cps-ncmp-service/src/test/resources/expectedNcmpEvent.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "eventId": "test-uuid",
- "eventCorrelationId": "cmhandle-as-correlationid",
- "eventTime": "2022-12-31T20:30:40.000+0000",
- "eventSource": "org.onap.ncmp",
- "eventType": "org.onap.ncmp.cmhandle.lcm.event",
- "eventSchema": "org.onap.ncmp.cmhandle.lcm.event:v1",
- "event": {
- "cmHandleId": "cmhandle-test",
- "cmhandle-state": "READY",
- "cmhandle-properties": [
- {
- "publicProperty1": "value1"
- },
- {
- "publicProperty2": "value2"
- }
- ]
- }
-}
\ No newline at end of file