From 6ff8320413401a7c0a51ecf5e9e0070fc011398d Mon Sep 17 00:00:00 2001 From: ksahu Date: Mon, 5 Jul 2021 15:03:20 +0530 Subject: [PATCH 1/5] Model to take timestamp as long and added recordIdVersion to builder --- .../core/common/model/status/DatasetDetails.java | 2 +- .../core/common/model/status/StatusDetails.java | 2 +- .../status/DatasetDetailsRequestBuilder.java | 3 +-- .../osdu/core/common/status/IEventPublisher.java | 15 +++++++-------- .../status/StatusDetailsRequestBuilder.java | 14 +++++++------- .../status/StatusDetailsRequestBuilderTest.java | 5 +++-- 6 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java index 1bad22c..a6d28fe 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java @@ -15,7 +15,7 @@ public class DatasetDetails { private String datasetVersionId; private DatasetType datasetType; private int recordCount; - private String timestamp; + private long timestamp; } } diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java index 17ed5db..65d8f87 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java @@ -19,7 +19,7 @@ public class StatusDetails { private String message; private int errorCode; private String userEmail; - private String timestamp; + private long timestamp; } } diff --git a/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java index f98e4a8..bae5fc2 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java @@ -5,7 +5,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.joda.time.DateTime; import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.status.DatasetDetails; import org.opengroup.osdu.core.common.model.status.DatasetDetails.Properties; @@ -64,7 +63,7 @@ public class DatasetDetailsRequestBuilder { properties.setDatasetType(datasetType); properties.setDatasetVersionId(datasetVersionId); properties.setRecordCount(recordCount); - properties.setTimestamp(DateTime.now().toString()); + properties.setTimestamp(System.currentTimeMillis()); return properties; } } diff --git a/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java index 345529d..74d8039 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java @@ -8,11 +8,12 @@ import org.opengroup.osdu.core.common.exception.CoreException; * Interface to publish message in event. * */ -public interface IEventPublisher { +public interface IEventPublisher { /** * This method will publish message to the configured event using data partition - * id and correlation id in attributesMap. Message should be in json format. - * Attributes map should consist both data-partition-id and correlation-id. + * id and correlation id in attributesMap. Messages is array which should + * contain either StatusDetails or DatasetDetails. Attributes map should consist + * both data-partition-id and correlation-id. * *
      * {@code
@@ -20,15 +21,13 @@ public interface IEventPublisher {
      * attributesMap.put("data-partition-id", "partitionId");
      * attributesMap.put("correlation-id", "abc123");
      *  
-     * String message = { "data": "value" };
-     *  
-     * iEventpublisher.publish(message, attributesMap);
+     * iEventpublisher.publish(messages, attributesMap);
      * }
      * 
* - * @param message + * @param messages * @param attributesMap * @throws CoreException */ - void publish(String message, Map attributesMap) throws CoreException; + void publish(T[] messages, Map attributesMap) throws CoreException; } diff --git a/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java index 9359930..478aaf5 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java @@ -5,7 +5,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.joda.time.DateTime; import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.status.Status; import org.opengroup.osdu.core.common.model.status.StatusDetails; @@ -28,18 +27,18 @@ public class StatusDetailsRequestBuilder { private final DpsHeaders dpsHeaders; private final ObjectMapper mapper; - public StatusDetails buildStatusDetails(String msg, String recordId, Status status, String stage, int errorCode) { - Properties properties = buildStatusProperties(msg, recordId, status, stage, errorCode); + public StatusDetails buildStatusDetails(String msg, String recordId, String recordIdVersion, Status status, String stage, int errorCode) { + Properties properties = buildStatusProperties(msg, recordId, recordIdVersion, status, stage, errorCode); StatusDetails statusDetails = new StatusDetails(); statusDetails.setKind(KIND); statusDetails.setProperties(properties); return statusDetails; } - public String createStatusDetailsMessage(String msg, String recordId, Status status, String stage, int errorCode) + public String createStatusDetailsMessage(String msg, String recordId, String recordIdVersion, Status status, String stage, int errorCode) throws JsonProcessingException { List statusDetailsList = new ArrayList<>(); - StatusDetails statusDetails = buildStatusDetails(msg, recordId, status, stage, errorCode); + StatusDetails statusDetails = buildStatusDetails(msg, recordId, recordIdVersion, status, stage, errorCode); statusDetailsList.add(statusDetails); return mapper.writeValueAsString(statusDetailsList); @@ -54,16 +53,17 @@ public class StatusDetailsRequestBuilder { return attributesMap; } - private Properties buildStatusProperties(String msg, String recordId, Status status, String stage, int errorCode) { + private Properties buildStatusProperties(String msg, String recordId, String recordIdVersion, Status status, String stage, int errorCode) { StatusDetails statusDetails = new StatusDetails(); Properties properties = statusDetails.new Properties(); properties.setCorrelationId(dpsHeaders.getCorrelationId()); properties.setErrorCode(errorCode); properties.setMessage(msg); properties.setRecordId(recordId); + properties.setRecordIdVersion(recordIdVersion); properties.setStage(stage); properties.setStatus(status); - properties.setTimestamp(DateTime.now().toString()); + properties.setTimestamp(System.currentTimeMillis()); properties.setUserEmail(dpsHeaders.getUserEmail()); return properties; } diff --git a/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java b/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java index 962f9a1..450df47 100644 --- a/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java +++ b/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java @@ -33,6 +33,7 @@ public class StatusDetailsRequestBuilderTest { private static final String MSG = "message"; private static final int BAD_REQUEST_ERROR_CODE = HttpStatus.SC_BAD_REQUEST; private static final String RECORD_ID = "partition1:abc:1234"; + private static final String RECORD_ID_VERSION = "partition1:abc:1234:123456789"; @Mock private DpsHeaders dpsHeaders; @@ -53,7 +54,7 @@ public class StatusDetailsRequestBuilderTest { @Test public void testBuildDatasetDetails() { - StatusDetails statusDetails = requestBuilder.buildStatusDetails(MSG, RECORD_ID, Status.FAILED, STAGE, BAD_REQUEST_ERROR_CODE); + StatusDetails statusDetails = requestBuilder.buildStatusDetails(MSG, RECORD_ID, RECORD_ID_VERSION, Status.FAILED, STAGE, BAD_REQUEST_ERROR_CODE); assertNotNull(statusDetails); assertNotNull(statusDetails.getProperties()); @@ -67,7 +68,7 @@ public class StatusDetailsRequestBuilderTest { @Test public void testCreateDatasetDetailsMessage() throws JsonProcessingException { - String statusDetailsAsString = requestBuilder.createStatusDetailsMessage(MSG, RECORD_ID, Status.FAILED, STAGE, BAD_REQUEST_ERROR_CODE); + String statusDetailsAsString = requestBuilder.createStatusDetailsMessage(MSG, RECORD_ID, RECORD_ID_VERSION, Status.FAILED, STAGE, BAD_REQUEST_ERROR_CODE); assertNotNull(statusDetailsAsString); assertFalse(statusDetailsAsString.isEmpty()); -- GitLab From d113060b3471784f091d26c91270baf6d1d626ef Mon Sep 17 00:00:00 2001 From: ksahu Date: Tue, 6 Jul 2021 17:51:30 +0530 Subject: [PATCH 2/5] Refactored classes for publishing status messages --- .../common/model/status/DatasetDetails.java | 3 +- .../core/common/model/status/Message.java | 10 +++ .../common/model/status/StatusDetails.java | 3 +- .../core/common/status/AttributesBuilder.java | 27 ++++++ .../status/DatasetDetailsRequestBuilder.java | 69 --------------- .../core/common/status/IEventPublisher.java | 5 +- .../status/StatusDetailsRequestBuilder.java | 70 --------------- .../common/status/AttributesBuilderTest.java | 37 ++++++++ .../DatasetDetailsRequestBuilderTest.java | 86 ------------------ .../StatusDetailsRequestBuilderTest.java | 88 ------------------- 10 files changed, 79 insertions(+), 319 deletions(-) create mode 100644 src/main/java/org/opengroup/osdu/core/common/model/status/Message.java create mode 100644 src/main/java/org/opengroup/osdu/core/common/status/AttributesBuilder.java delete mode 100644 src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java delete mode 100644 src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java create mode 100644 src/test/java/org/opengroup/osdu/core/common/status/AttributesBuilderTest.java delete mode 100644 src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java delete mode 100644 src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java index a6d28fe..0b89d7c 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java @@ -3,9 +3,8 @@ package org.opengroup.osdu.core.common.model.status; import lombok.Data; @Data -public class DatasetDetails { +public class DatasetDetails extends Message { - private String kind; private Properties properties; @Data diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java b/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java new file mode 100644 index 0000000..20d8521 --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java @@ -0,0 +1,10 @@ +package org.opengroup.osdu.core.common.model.status; + +import lombok.Data; + +@Data +public class Message { + + protected String kind; + +} diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java index 65d8f87..4f82179 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java @@ -3,9 +3,8 @@ package org.opengroup.osdu.core.common.model.status; import lombok.Data; @Data -public class StatusDetails { +public class StatusDetails extends Message { - private String kind; private Properties properties; @Data diff --git a/src/main/java/org/opengroup/osdu/core/common/status/AttributesBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/AttributesBuilder.java new file mode 100644 index 0000000..9cee82f --- /dev/null +++ b/src/main/java/org/opengroup/osdu/core/common/status/AttributesBuilder.java @@ -0,0 +1,27 @@ +package org.opengroup.osdu.core.common.status; + +import java.util.HashMap; +import java.util.Map; + +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +import lombok.RequiredArgsConstructor; + +@Lazy +@Component +@RequiredArgsConstructor +public class AttributesBuilder { + + private final DpsHeaders dpsHeaders; + + public Map createAttributesMap() { + Map attributesMap = new HashMap<>(); + + attributesMap.put(DpsHeaders.CORRELATION_ID, dpsHeaders.getCorrelationId()); + attributesMap.put(DpsHeaders.DATA_PARTITION_ID, dpsHeaders.getPartitionId()); + + return attributesMap; + } +} diff --git a/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java deleted file mode 100644 index bae5fc2..0000000 --- a/src/main/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilder.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.opengroup.osdu.core.common.status; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.opengroup.osdu.core.common.model.http.DpsHeaders; -import org.opengroup.osdu.core.common.model.status.DatasetDetails; -import org.opengroup.osdu.core.common.model.status.DatasetDetails.Properties; -import org.opengroup.osdu.core.common.model.status.DatasetType; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Component; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -import lombok.RequiredArgsConstructor; - -@Lazy -@Component -@RequiredArgsConstructor -public class DatasetDetailsRequestBuilder { - - private static final String KIND = "datasetDetails"; - - private final DpsHeaders dpsHeaders; - private final ObjectMapper mapper; - - public DatasetDetails buildDatasetDetails(String datasetId, DatasetType datasetType, String datasetVersionId, - int recordCount) { - Properties properties = buildDatasetDetailsProperties(datasetId, datasetType, datasetVersionId, recordCount); - DatasetDetails datasetDetails = new DatasetDetails(); - datasetDetails.setKind(KIND); - datasetDetails.setProperties(properties); - return datasetDetails; - } - - public String createDatasetDetailsMessage(String datasetId, DatasetType datasetType, String datasetVersionId, - int recordCount) throws JsonProcessingException { - List statusDetailsList = new ArrayList<>(); - DatasetDetails datasetDetails = buildDatasetDetails(datasetId, datasetType, datasetVersionId, recordCount); - statusDetailsList.add(datasetDetails); - - return mapper.writeValueAsString(statusDetailsList); - } - - public Map createAttributesMap() { - Map attributesMap = new HashMap<>(); - - attributesMap.put(DpsHeaders.CORRELATION_ID, dpsHeaders.getCorrelationId()); - attributesMap.put(DpsHeaders.DATA_PARTITION_ID, dpsHeaders.getPartitionId()); - - return attributesMap; - } - - private Properties buildDatasetDetailsProperties(String datasetId, DatasetType datasetType, String datasetVersionId, - int recordCount) { - DatasetDetails datasetDetails = new DatasetDetails(); - Properties properties = datasetDetails.new Properties(); - properties.setCorrelationId(dpsHeaders.getCorrelationId()); - properties.setDatasetId(datasetId); - properties.setDatasetType(datasetType); - properties.setDatasetVersionId(datasetVersionId); - properties.setRecordCount(recordCount); - properties.setTimestamp(System.currentTimeMillis()); - return properties; - } -} diff --git a/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java b/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java index 74d8039..f8b50f9 100644 --- a/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java +++ b/src/main/java/org/opengroup/osdu/core/common/status/IEventPublisher.java @@ -3,12 +3,13 @@ package org.opengroup.osdu.core.common.status; import java.util.Map; import org.opengroup.osdu.core.common.exception.CoreException; +import org.opengroup.osdu.core.common.model.status.Message; /** * Interface to publish message in event. * */ -public interface IEventPublisher { +public interface IEventPublisher { /** * This method will publish message to the configured event using data partition * id and correlation id in attributesMap. Messages is array which should @@ -29,5 +30,5 @@ public interface IEventPublisher { * @param attributesMap * @throws CoreException */ - void publish(T[] messages, Map attributesMap) throws CoreException; + void publish(Message[] messages, Map attributesMap) throws CoreException; } diff --git a/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java b/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java deleted file mode 100644 index 478aaf5..0000000 --- a/src/main/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilder.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.opengroup.osdu.core.common.status; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.opengroup.osdu.core.common.model.http.DpsHeaders; -import org.opengroup.osdu.core.common.model.status.Status; -import org.opengroup.osdu.core.common.model.status.StatusDetails; -import org.opengroup.osdu.core.common.model.status.StatusDetails.Properties; -import org.springframework.context.annotation.Lazy; -import org.springframework.stereotype.Component; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -import lombok.RequiredArgsConstructor; - -@Lazy -@Component -@RequiredArgsConstructor -public class StatusDetailsRequestBuilder { - - private static final String KIND = "status"; - - private final DpsHeaders dpsHeaders; - private final ObjectMapper mapper; - - public StatusDetails buildStatusDetails(String msg, String recordId, String recordIdVersion, Status status, String stage, int errorCode) { - Properties properties = buildStatusProperties(msg, recordId, recordIdVersion, status, stage, errorCode); - StatusDetails statusDetails = new StatusDetails(); - statusDetails.setKind(KIND); - statusDetails.setProperties(properties); - return statusDetails; - } - - public String createStatusDetailsMessage(String msg, String recordId, String recordIdVersion, Status status, String stage, int errorCode) - throws JsonProcessingException { - List statusDetailsList = new ArrayList<>(); - StatusDetails statusDetails = buildStatusDetails(msg, recordId, recordIdVersion, status, stage, errorCode); - statusDetailsList.add(statusDetails); - - return mapper.writeValueAsString(statusDetailsList); - } - - public Map createAttributesMap() { - Map attributesMap = new HashMap<>(); - - attributesMap.put(DpsHeaders.CORRELATION_ID, dpsHeaders.getCorrelationId()); - attributesMap.put(DpsHeaders.DATA_PARTITION_ID, dpsHeaders.getPartitionId()); - - return attributesMap; - } - - private Properties buildStatusProperties(String msg, String recordId, String recordIdVersion, Status status, String stage, int errorCode) { - StatusDetails statusDetails = new StatusDetails(); - Properties properties = statusDetails.new Properties(); - properties.setCorrelationId(dpsHeaders.getCorrelationId()); - properties.setErrorCode(errorCode); - properties.setMessage(msg); - properties.setRecordId(recordId); - properties.setRecordIdVersion(recordIdVersion); - properties.setStage(stage); - properties.setStatus(status); - properties.setTimestamp(System.currentTimeMillis()); - properties.setUserEmail(dpsHeaders.getUserEmail()); - return properties; - } -} diff --git a/src/test/java/org/opengroup/osdu/core/common/status/AttributesBuilderTest.java b/src/test/java/org/opengroup/osdu/core/common/status/AttributesBuilderTest.java new file mode 100644 index 0000000..35ed14c --- /dev/null +++ b/src/test/java/org/opengroup/osdu/core/common/status/AttributesBuilderTest.java @@ -0,0 +1,37 @@ +package org.opengroup.osdu.core.common.status; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.when; + +import java.util.Map; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; +import org.opengroup.osdu.core.common.model.http.DpsHeaders; + +@RunWith(MockitoJUnitRunner.class) +public class AttributesBuilderTest { + + private static final String DATA_PARTITION_ID = "data-partition-id"; + private static final String CORRELATION_ID = "correlation-id"; + + @Mock + private DpsHeaders dpsHeaders; + + @InjectMocks + private AttributesBuilder attributesBuilder; + + @Test + public void testCreateAttributesMap() { + when(dpsHeaders.getCorrelationId()).thenReturn(CORRELATION_ID); + when(dpsHeaders.getPartitionId()).thenReturn(DATA_PARTITION_ID); + + Map attributesMap = attributesBuilder.createAttributesMap(); + + assertEquals(DATA_PARTITION_ID, attributesMap.get(DpsHeaders.DATA_PARTITION_ID)); + assertEquals(CORRELATION_ID, attributesMap.get(DpsHeaders.CORRELATION_ID)); + } +} diff --git a/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java b/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java deleted file mode 100644 index 39ee0ff..0000000 --- a/src/test/java/org/opengroup/osdu/core/common/status/DatasetDetailsRequestBuilderTest.java +++ /dev/null @@ -1,86 +0,0 @@ -package org.opengroup.osdu.core.common.status; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.mockito.Mockito.when; - -import java.util.Map; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Spy; -import org.mockito.runners.MockitoJUnitRunner; -import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; -import org.opengroup.osdu.core.common.model.http.DpsHeaders; -import org.opengroup.osdu.core.common.model.status.DatasetDetails; -import org.opengroup.osdu.core.common.model.status.DatasetType; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -@RunWith(MockitoJUnitRunner.class) -public class DatasetDetailsRequestBuilderTest { - - private static final String DATA_PARTITION_ID = "data-partition-id"; - private static final String CORRELATION_ID = "correlation-id"; - private static final int RECORD_COUNT_1 = 1; - private static final String DATASET_VERSION_ID = "v1"; - private static final String DATASET_ID = "abc123"; - private static final String DATASET_DETAILS = "datasetDetails"; - - @Mock - private DpsHeaders dpsHeaders; - - @Spy - private ObjectMapper mapper = new ObjectMapper(); - - @Mock - private JaxRsDpsLog log; - - @InjectMocks - private DatasetDetailsRequestBuilder requestBuilder; - - @Before - public void setup() { - when(dpsHeaders.getCorrelationId()).thenReturn(CORRELATION_ID); - } - - @Test - public void testBuildDatasetDetails() { - DatasetDetails datasetDetails = requestBuilder.buildDatasetDetails(DATASET_ID, DatasetType.FILE, - DATASET_VERSION_ID, RECORD_COUNT_1); - - assertNotNull(datasetDetails); - assertNotNull(datasetDetails.getProperties()); - assertEquals(DATASET_DETAILS, datasetDetails.getKind()); - assertEquals(DATASET_ID, datasetDetails.getProperties().getDatasetId()); - assertEquals(DatasetType.FILE, datasetDetails.getProperties().getDatasetType()); - assertEquals(DATASET_VERSION_ID, datasetDetails.getProperties().getDatasetVersionId()); - assertEquals(RECORD_COUNT_1, datasetDetails.getProperties().getRecordCount()); - } - - @Test - public void testCreateDatasetDetailsMessage() throws JsonProcessingException { - String datasetDetailsAsString = requestBuilder.createDatasetDetailsMessage(DATASET_ID, DatasetType.FILE, - DATASET_ID, RECORD_COUNT_1); - - assertNotNull(datasetDetailsAsString); - assertFalse(datasetDetailsAsString.isEmpty()); - } - - @Test - public void testCreateAttributesMap() { - when(dpsHeaders.getPartitionId()).thenReturn(DATA_PARTITION_ID); - - Map attributesMap = requestBuilder.createAttributesMap(); - - assertNotNull(attributesMap); - assertEquals(2, attributesMap.size()); - assertEquals(DATA_PARTITION_ID, attributesMap.get(DpsHeaders.DATA_PARTITION_ID)); - assertEquals(CORRELATION_ID, attributesMap.get(DpsHeaders.CORRELATION_ID)); - } -} diff --git a/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java b/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java deleted file mode 100644 index 450df47..0000000 --- a/src/test/java/org/opengroup/osdu/core/common/status/StatusDetailsRequestBuilderTest.java +++ /dev/null @@ -1,88 +0,0 @@ -package org.opengroup.osdu.core.common.status; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.mockito.Mockito.when; - -import java.util.Map; - -import org.apache.http.HttpStatus; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Spy; -import org.mockito.runners.MockitoJUnitRunner; -import org.opengroup.osdu.core.common.logging.JaxRsDpsLog; -import org.opengroup.osdu.core.common.model.http.DpsHeaders; -import org.opengroup.osdu.core.common.model.status.Status; -import org.opengroup.osdu.core.common.model.status.StatusDetails; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; - -@RunWith(MockitoJUnitRunner.class) -public class StatusDetailsRequestBuilderTest { - - private static final String DATA_PARTITION_ID = "data-partition-id"; - private static final String CORRELATION_ID = "correlation-id"; - private static final String STATUS = "status"; - private static final String STAGE = "STORAGE_SYNC"; - private static final String MSG = "message"; - private static final int BAD_REQUEST_ERROR_CODE = HttpStatus.SC_BAD_REQUEST; - private static final String RECORD_ID = "partition1:abc:1234"; - private static final String RECORD_ID_VERSION = "partition1:abc:1234:123456789"; - - @Mock - private DpsHeaders dpsHeaders; - - @Spy - private ObjectMapper mapper = new ObjectMapper(); - - @Mock - private JaxRsDpsLog log; - - @InjectMocks - private StatusDetailsRequestBuilder requestBuilder; - - @Before - public void setup() { - when(dpsHeaders.getCorrelationId()).thenReturn(CORRELATION_ID); - } - - @Test - public void testBuildDatasetDetails() { - StatusDetails statusDetails = requestBuilder.buildStatusDetails(MSG, RECORD_ID, RECORD_ID_VERSION, Status.FAILED, STAGE, BAD_REQUEST_ERROR_CODE); - - assertNotNull(statusDetails); - assertNotNull(statusDetails.getProperties()); - assertEquals(STATUS, statusDetails.getKind()); - assertEquals(MSG, statusDetails.getProperties().getMessage()); - assertEquals(RECORD_ID, statusDetails.getProperties().getRecordId()); - assertEquals(Status.FAILED, statusDetails.getProperties().getStatus()); - assertEquals(STAGE, statusDetails.getProperties().getStage()); - assertEquals(BAD_REQUEST_ERROR_CODE, statusDetails.getProperties().getErrorCode()); - } - - @Test - public void testCreateDatasetDetailsMessage() throws JsonProcessingException { - String statusDetailsAsString = requestBuilder.createStatusDetailsMessage(MSG, RECORD_ID, RECORD_ID_VERSION, Status.FAILED, STAGE, BAD_REQUEST_ERROR_CODE); - - assertNotNull(statusDetailsAsString); - assertFalse(statusDetailsAsString.isEmpty()); - } - - @Test - public void testCreateAttributesMap() { - when(dpsHeaders.getPartitionId()).thenReturn(DATA_PARTITION_ID); - - Map attributesMap = requestBuilder.createAttributesMap(); - - assertNotNull(attributesMap); - assertEquals(2, attributesMap.size()); - assertEquals(DATA_PARTITION_ID, attributesMap.get(DpsHeaders.DATA_PARTITION_ID)); - assertEquals(CORRELATION_ID, attributesMap.get(DpsHeaders.CORRELATION_ID)); - } -} \ No newline at end of file -- GitLab From bc4ac815e77a8d7ac8e0a652c42e34175453787b Mon Sep 17 00:00:00 2001 From: ksahu Date: Tue, 6 Jul 2021 17:54:27 +0530 Subject: [PATCH 3/5] Made Message as abstract class --- .../org/opengroup/osdu/core/common/model/status/Message.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java b/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java index 20d8521..e141dac 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java @@ -3,7 +3,7 @@ package org.opengroup.osdu.core.common.model.status; import lombok.Data; @Data -public class Message { +public abstract class Message { protected String kind; -- GitLab From d36e2d88edbb4ac8657600623d8c5a7c28a5c813 Mon Sep 17 00:00:00 2001 From: ksahu Date: Wed, 7 Jul 2021 10:42:55 +0530 Subject: [PATCH 4/5] Made message as interface --- .../osdu/core/common/model/status/DatasetDetails.java | 5 +++-- .../opengroup/osdu/core/common/model/status/Message.java | 7 +------ .../osdu/core/common/model/status/StatusDetails.java | 5 +++-- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java index 0b89d7c..ac09e06 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java @@ -3,8 +3,9 @@ package org.opengroup.osdu.core.common.model.status; import lombok.Data; @Data -public class DatasetDetails extends Message { - +public class DatasetDetails implements Message { + + private String kind; private Properties properties; @Data diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java b/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java index e141dac..55a5515 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/Message.java @@ -1,10 +1,5 @@ package org.opengroup.osdu.core.common.model.status; -import lombok.Data; - -@Data -public abstract class Message { - - protected String kind; +public interface Message { } diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java index 4f82179..da9b9df 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java @@ -3,8 +3,9 @@ package org.opengroup.osdu.core.common.model.status; import lombok.Data; @Data -public class StatusDetails extends Message { - +public class StatusDetails implements Message { + + private String kind; private Properties properties; @Data -- GitLab From 56476fac4a577a9d833a9b71fc7907c60c886380 Mon Sep 17 00:00:00 2001 From: ksahu Date: Thu, 8 Jul 2021 12:30:45 +0530 Subject: [PATCH 5/5] Added comment to specify that timestamp is epoch timestamp --- .../opengroup/osdu/core/common/model/status/DatasetDetails.java | 1 + .../opengroup/osdu/core/common/model/status/StatusDetails.java | 1 + 2 files changed, 2 insertions(+) diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java index ac09e06..d7ca833 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/DatasetDetails.java @@ -15,6 +15,7 @@ public class DatasetDetails implements Message { private String datasetVersionId; private DatasetType datasetType; private int recordCount; + // epoch time private long timestamp; } diff --git a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java index da9b9df..6190867 100644 --- a/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java +++ b/src/main/java/org/opengroup/osdu/core/common/model/status/StatusDetails.java @@ -19,6 +19,7 @@ public class StatusDetails implements Message { private String message; private int errorCode; private String userEmail; + // epoch time private long timestamp; } -- GitLab