aboutsummaryrefslogtreecommitdiffstats
path: root/cps-service
diff options
context:
space:
mode:
authormpriyank <priyank.maheshwari@est.tech>2024-05-03 13:45:03 +0100
committermpriyank <priyank.maheshwari@est.tech>2024-05-03 15:35:11 +0100
commite834c9345da1819613044c423d6cd3a096aad55e (patch)
tree4edbe1aa223fd49ef0f875b1bf5cbe9a4deefa8d /cps-service
parentc5f6c45eb5cd94f76f1f39e5a4593996a9f25474 (diff)
[BUG] Correctly parse observedTimestamp
- Using the DateTimeUtility to parse the passed OffsetDateTime and using it for conversion to string - Moving to actual src/main/java from test side as it is to be used in the prod code as well and only keeping the methods in use. - Added test to fix the coverage issue Issue-ID: CPS-2211 Change-Id: I2b4325bb77a6da7fd470986b1da293f455650375 Signed-off-by: mpriyank <priyank.maheshwari@est.tech>
Diffstat (limited to 'cps-service')
-rw-r--r--cps-service/src/main/java/org/onap/cps/events/CpsDataUpdateEventsService.java4
-rw-r--r--cps-service/src/main/java/org/onap/cps/utils/DateTimeUtility.java (renamed from cps-service/src/test/java/org/onap/cps/utils/DateTimeUtility.java)9
-rw-r--r--cps-service/src/test/groovy/org/onap/cps/events/CpsDataUpdateEventsServiceSpec.groovy16
3 files changed, 20 insertions, 9 deletions
diff --git a/cps-service/src/main/java/org/onap/cps/events/CpsDataUpdateEventsService.java b/cps-service/src/main/java/org/onap/cps/events/CpsDataUpdateEventsService.java
index e3315c9aba..d38432dfa9 100644
--- a/cps-service/src/main/java/org/onap/cps/events/CpsDataUpdateEventsService.java
+++ b/cps-service/src/main/java/org/onap/cps/events/CpsDataUpdateEventsService.java
@@ -1,6 +1,7 @@
/*
* ============LICENSE_START=======================================================
* Copyright (C) 2024 TechMahindra Ltd.
+ * Copyright (C) 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.
@@ -31,6 +32,7 @@ import org.onap.cps.events.model.CpsDataUpdatedEvent;
import org.onap.cps.events.model.Data;
import org.onap.cps.events.model.Data.Operation;
import org.onap.cps.spi.model.Anchor;
+import org.onap.cps.utils.DateTimeUtility;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -77,7 +79,7 @@ public class CpsDataUpdateEventsService {
final Operation rootNodeOperation) {
final CpsDataUpdatedEvent cpsDataUpdatedEvent = new CpsDataUpdatedEvent();
final Data updateEventData = new Data();
- updateEventData.setObservedTimestamp(observedTimestamp.toString());
+ updateEventData.setObservedTimestamp(DateTimeUtility.toString(observedTimestamp));
updateEventData.setDataspaceName(anchor.getDataspaceName());
updateEventData.setAnchorName(anchor.getName());
updateEventData.setSchemaSetName(anchor.getSchemaSetName());
diff --git a/cps-service/src/test/java/org/onap/cps/utils/DateTimeUtility.java b/cps-service/src/main/java/org/onap/cps/utils/DateTimeUtility.java
index f8d709647c..c2310707ab 100644
--- a/cps-service/src/test/java/org/onap/cps/utils/DateTimeUtility.java
+++ b/cps-service/src/main/java/org/onap/cps/utils/DateTimeUtility.java
@@ -1,12 +1,13 @@
/*
* ============LICENSE_START=======================================================
* Copyright (c) 2021 Bell Canada.
+ * Copyright (C) 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -22,18 +23,12 @@ package org.onap.cps.utils;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
-import org.springframework.util.StringUtils;
public interface DateTimeUtility {
String ISO_TIMESTAMP_PATTERN = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
DateTimeFormatter ISO_TIMESTAMP_FORMATTER = DateTimeFormatter.ofPattern(ISO_TIMESTAMP_PATTERN);
- static OffsetDateTime toOffsetDateTime(String datetTimestampAsString) {
- return ! StringUtils.hasLength(datetTimestampAsString)
- ? null : OffsetDateTime.parse(datetTimestampAsString, ISO_TIMESTAMP_FORMATTER);
- }
-
static String toString(OffsetDateTime offsetDateTime) {
return offsetDateTime != null ? ISO_TIMESTAMP_FORMATTER.format(offsetDateTime) : null;
}
diff --git a/cps-service/src/test/groovy/org/onap/cps/events/CpsDataUpdateEventsServiceSpec.groovy b/cps-service/src/test/groovy/org/onap/cps/events/CpsDataUpdateEventsServiceSpec.groovy
index 81b2bf2c95..24b9ab5d71 100644
--- a/cps-service/src/test/groovy/org/onap/cps/events/CpsDataUpdateEventsServiceSpec.groovy
+++ b/cps-service/src/test/groovy/org/onap/cps/events/CpsDataUpdateEventsServiceSpec.groovy
@@ -84,7 +84,7 @@ class CpsDataUpdateEventsServiceSpec extends Specification {
def anchor = new Anchor('anchor01', 'dataspace01', 'schema01');
def operation = CREATE
def observedTimestamp = OffsetDateTime.now()
- and: 'notificationsEnabled is flase'
+ and: 'notificationsEnabled is false'
objectUnderTest.notificationsEnabled = false
when: 'service is called to publish data update event'
objectUnderTest.topicName = "cps-core-event"
@@ -92,4 +92,18 @@ class CpsDataUpdateEventsServiceSpec extends Specification {
then: 'the event contains the required attributes'
0 * mockEventsPublisher.publishCloudEvent('cps-core-event', 'dataspace01:anchor01', _)
}
+
+ def 'publish cps update event when no timestamp provided'() {
+ given: 'an anchor, operation and null timestamp'
+ def anchor = new Anchor('anchor01', 'dataspace01', 'schema01');
+ def operation = CREATE
+ def observedTimestamp = null
+ and: 'notificationsEnabled is true'
+ objectUnderTest.notificationsEnabled = true
+ when: 'service is called to publish data update event'
+ objectUnderTest.topicName = "cps-core-event"
+ objectUnderTest.publishCpsDataUpdateEvent(anchor, '/', operation, observedTimestamp)
+ then: 'the event is published'
+ 1 * mockEventsPublisher.publishCloudEvent('cps-core-event', 'dataspace01:anchor01', _)
+ }
}