Loading src/test/java/org/etsi/osl/metrico/prometheus/PrometheusQueriesTest.java +28 −0 Viewed Changes for src/test/java/org/etsi/osl/metrico/prometheus/PrometheusQueriesTest.java: 28 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,10 +7,14 @@ import org.etsi.osl.tmf.pm628.model.ExecutionStateType; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockedStatic; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.time.OffsetDateTime; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; Loading Loading @@ -121,4 +125,28 @@ class PrometheusQueriesTest { verify(metricoCommonMethods).updateService(eq("service-uuid"), any(), eq(true)); } @Test void testStartPeriodicQuery_SchedulesStopJobWhenEndDateTimePresent() { Job job = new Job(); job.setExecutionInterval(100); job.setEndDateTime(OffsetDateTime.now().plusSeconds(61)); MeasurementCollectionJob mcj = new MeasurementCollectionJob(); ScheduledExecutorService scheduler = mock(ScheduledExecutorService.class); try (MockedStatic<JobService> jobServiceStatic = mockStatic(JobService.class)) { jobServiceStatic.when(JobService::getScheduler).thenReturn(scheduler); when(jobService.startJob(any(Runnable.class), any(Job.class))).thenAnswer(invocation -> { Job j = invocation.getArgument(1); j.setState(ExecutionStateType.INPROGRESS); return j; }); prometheusQueries.startPeriodicQuery("http://localhost:9090", "query=up", job, mcj); verify(scheduler).schedule(any(Runnable.class), eq(60L), eq(TimeUnit.SECONDS)); } } } No newline at end of file src/test/java/org/etsi/osl/metrico/services/MetricoServiceRouteBuilderTest.java 0 → 100644 +46 −0 Viewed Changes for src/test/java/org/etsi/osl/metrico/services/MetricoServiceRouteBuilderTest.java: 46 added lines, 0 removed lines. Original line number Diff line number Diff line package org.etsi.osl.metrico.services; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.camel.CamelContext; import org.apache.camel.ProducerTemplate; import org.apache.camel.test.spring.junit5.CamelSpringBootTest; import org.etsi.osl.metrico.MetricoCommonMethods; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobCreateEvent; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.test.context.TestPropertySource; import static org.mockito.Mockito.*; @CamelSpringBootTest @SpringBootTest @TestPropertySource(properties = { "EVENT_MEASUREMENT_COLLECTION_JOB_CREATE=direct:eventMeasurementCollectionJobCreate" }) class MetricoServiceRouteBuilderTest { @Autowired private ProducerTemplate producerTemplate; @MockBean private MetricoService metricoService; @MockBean private MetricoCommonMethods metricoCommonMethods; @Test void testRouteCallsMetricoService() throws Exception { ObjectMapper objectMapper = new ObjectMapper(); MeasurementCollectionJobCreateEvent event = new MeasurementCollectionJobCreateEvent(); String eventJson = objectMapper.writeValueAsString(event); producerTemplate.sendBody("direct:eventMeasurementCollectionJobCreate", eventJson); ArgumentCaptor<MeasurementCollectionJobCreateEvent> captor = ArgumentCaptor.forClass(MeasurementCollectionJobCreateEvent.class); verify(metricoService, timeout(1000)).startPeriodicQueryToPrometheusEvent(captor.capture()); } } No newline at end of file src/test/java/org/etsi/osl/metrico/services/MetricoServiceTest.java +110 −0 Viewed Changes for src/test/java/org/etsi/osl/metrico/services/MetricoServiceTest.java: 110 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -170,4 +170,114 @@ class MetricoServiceTest { verify(metricoCommonMethods).retrieveMeasurementCollectionJob("123e4567-e89b-12d3-a456-426614174002"); } @Test void testRestartPendingOrInProgressJobs_skipsJobWithNoDataAccessEndpoint() { MeasurementCollectionJob mcj = validMCJ(); mcj.setDataAccessEndpoint(null); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } @Test void testRestartPendingOrInProgressJobs_skipsJobWithMultipleDataAccessEndpoints() { MeasurementCollectionJob mcj = validMCJ(); DataAccessEndpoint dae2 = new DataAccessEndpoint(); dae2.setUuid(UUID.randomUUID().toString()); dae2.setApiType("Prometheus"); dae2.setUri(URI.create("http://localhost:9091/api/v1/query?query=down")); List<DataAccessEndpoint> endpoints = new ArrayList<>(mcj.getDataAccessEndpoint()); endpoints.add(dae2); mcj.setDataAccessEndpoint(endpoints); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } @Test void testRestartPendingOrInProgressJobs_skipsJobWithMultipleScheduleDefinitions() { MeasurementCollectionJob mcj = validMCJ(); ScheduleDefinition schedule2 = new ScheduleDefinition(); schedule2.setScheduleDefinitionStartTime(OffsetDateTime.now().plusSeconds(2)); schedule2.setScheduleDefinitionEndTime(OffsetDateTime.now().plusHours(2)); List<ScheduleDefinition> schedules = new ArrayList<>(mcj.getScheduleDefinition()); schedules.add(schedule2); mcj.setScheduleDefinition(schedules); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } @Test void testRestartPendingOrInProgressJobs_skipsJobWithEndedScheduleDefinition() { MeasurementCollectionJob mcj = validMCJ(); OffsetDateTime start = OffsetDateTime.now().minusHours(2); OffsetDateTime end = OffsetDateTime.now().minusHours(1); mcj.getScheduleDefinition().get(0).setScheduleDefinitionStartTime(start); mcj.getScheduleDefinition().get(0).setScheduleDefinitionEndTime(end); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } @Test void testRestartPendingOrInProgressJobs_jobWithNoScheduleDefinition_addsAndSkipsIfEnded() { MeasurementCollectionJob mcj = validMCJ(); mcj.setScheduleDefinition(new ArrayList<>()); // No schedule definitions mcj.setCreationTime(OffsetDateTime.now().minusHours(2)); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } } No newline at end of file src/test/java/org/etsi/osl/metrico/DummyRouteBuilder.javadeleted 100644 → 0 +0 −53 Viewed Changes for src/test/java/org/etsi/osl/metrico/DummyRouteBuilder.java: 0 added lines, 53 removed lines. Original line number Diff line number Diff line package org.etsi.osl.metrico; import org.apache.camel.builder.RouteBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; @Profile("testing") @Component public class DummyRouteBuilder extends RouteBuilder { private static final Logger logger = LoggerFactory.getLogger(DummyRouteBuilder.class); @Value("${PM_MEASUREMENT_COLLECTION_JOB_UPDATE}") private String PM_MEASUREMENT_COLLECTION_JOB_UPDATE = ""; @Value("${PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID}") private String PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID = ""; @Value("${PM_MEASUREMENT_COLLECTION_JOBS_GET}") private String PM_MEASUREMENT_COLLECTION_JOBS_GET = ""; @Value("${CATALOG_GET_SERVICE_BY_ID}") private String CATALOG_GET_SERVICE_BY_ID = ""; @Value("${CATALOG_UPD_SERVICE}") private String CATALOG_UPD_SERVICE = ""; @Value("${CATALOG_GET_RESOURCE_BY_ID}") private String CATALOG_GET_RESOURCE_BY_ID = ""; @Value("${CATALOG_UPD_RESOURCE}") private String CATALOG_UPD_RESOURCE = ""; @Value("${CATALOG_UPDADD_RESOURCESPEC}") private String CATALOG_UPDADD_RESOURCESPEC = ""; private final String measurementCollectionJobJson = "{\n" + " \"outputFormat\": \"JSON\",\n" + " \"@type\": \"MeasurementCollectionJob\",\n" + " \"consumingApplicationId\": \"app123\",\n" + " \"producingApplicationId\": \"app456\",\n" + " \"dataAccessEndpoint\": [],\n" + " \"jobPriority\": 1,\n" + " \"lastModifiedTime\": \"2023-01-01T00:00:00Z\",\n" + " \"scheduleDefinition\": []\n" + "}"; @Override public void configure() throws Exception { logger.info("Configuring dummy routes..."); from("direct:PM.MEASUREMENTCOLLECTIONJOB.GET_BY_ID") .process(exchange -> { logger.info("Processing GET_BY_ID route"); exchange.getIn().setBody(measurementCollectionJobJson); }); } } No newline at end of file src/test/java/org/etsi/osl/metrico/JsonUtilTest.java +10 −0 Viewed Changes for src/test/java/org/etsi/osl/metrico/JsonUtilTest.java: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -44,4 +44,14 @@ class JsonUtilTest { assertNull(jsonString); } @Test void toJsonString_unserializableObject_returnsNull() { class SelfRef { public SelfRef ref; } SelfRef obj = new SelfRef(); obj.ref = obj; // creates a circular reference String jsonString = JsonUtil.toJsonString(obj); assertNull(jsonString); } } No newline at end of file Loading
src/test/java/org/etsi/osl/metrico/prometheus/PrometheusQueriesTest.java +28 −0 Viewed Changes for src/test/java/org/etsi/osl/metrico/prometheus/PrometheusQueriesTest.java: 28 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -7,10 +7,14 @@ import org.etsi.osl.tmf.pm628.model.ExecutionStateType; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockedStatic; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.lang.reflect.Field; import java.time.OffsetDateTime; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; Loading Loading @@ -121,4 +125,28 @@ class PrometheusQueriesTest { verify(metricoCommonMethods).updateService(eq("service-uuid"), any(), eq(true)); } @Test void testStartPeriodicQuery_SchedulesStopJobWhenEndDateTimePresent() { Job job = new Job(); job.setExecutionInterval(100); job.setEndDateTime(OffsetDateTime.now().plusSeconds(61)); MeasurementCollectionJob mcj = new MeasurementCollectionJob(); ScheduledExecutorService scheduler = mock(ScheduledExecutorService.class); try (MockedStatic<JobService> jobServiceStatic = mockStatic(JobService.class)) { jobServiceStatic.when(JobService::getScheduler).thenReturn(scheduler); when(jobService.startJob(any(Runnable.class), any(Job.class))).thenAnswer(invocation -> { Job j = invocation.getArgument(1); j.setState(ExecutionStateType.INPROGRESS); return j; }); prometheusQueries.startPeriodicQuery("http://localhost:9090", "query=up", job, mcj); verify(scheduler).schedule(any(Runnable.class), eq(60L), eq(TimeUnit.SECONDS)); } } } No newline at end of file
src/test/java/org/etsi/osl/metrico/services/MetricoServiceRouteBuilderTest.java 0 → 100644 +46 −0 Viewed Changes for src/test/java/org/etsi/osl/metrico/services/MetricoServiceRouteBuilderTest.java: 46 added lines, 0 removed lines. Original line number Diff line number Diff line package org.etsi.osl.metrico.services; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.camel.CamelContext; import org.apache.camel.ProducerTemplate; import org.apache.camel.test.spring.junit5.CamelSpringBootTest; import org.etsi.osl.metrico.MetricoCommonMethods; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobCreateEvent; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.test.context.TestPropertySource; import static org.mockito.Mockito.*; @CamelSpringBootTest @SpringBootTest @TestPropertySource(properties = { "EVENT_MEASUREMENT_COLLECTION_JOB_CREATE=direct:eventMeasurementCollectionJobCreate" }) class MetricoServiceRouteBuilderTest { @Autowired private ProducerTemplate producerTemplate; @MockBean private MetricoService metricoService; @MockBean private MetricoCommonMethods metricoCommonMethods; @Test void testRouteCallsMetricoService() throws Exception { ObjectMapper objectMapper = new ObjectMapper(); MeasurementCollectionJobCreateEvent event = new MeasurementCollectionJobCreateEvent(); String eventJson = objectMapper.writeValueAsString(event); producerTemplate.sendBody("direct:eventMeasurementCollectionJobCreate", eventJson); ArgumentCaptor<MeasurementCollectionJobCreateEvent> captor = ArgumentCaptor.forClass(MeasurementCollectionJobCreateEvent.class); verify(metricoService, timeout(1000)).startPeriodicQueryToPrometheusEvent(captor.capture()); } } No newline at end of file
src/test/java/org/etsi/osl/metrico/services/MetricoServiceTest.java +110 −0 Viewed Changes for src/test/java/org/etsi/osl/metrico/services/MetricoServiceTest.java: 110 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -170,4 +170,114 @@ class MetricoServiceTest { verify(metricoCommonMethods).retrieveMeasurementCollectionJob("123e4567-e89b-12d3-a456-426614174002"); } @Test void testRestartPendingOrInProgressJobs_skipsJobWithNoDataAccessEndpoint() { MeasurementCollectionJob mcj = validMCJ(); mcj.setDataAccessEndpoint(null); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } @Test void testRestartPendingOrInProgressJobs_skipsJobWithMultipleDataAccessEndpoints() { MeasurementCollectionJob mcj = validMCJ(); DataAccessEndpoint dae2 = new DataAccessEndpoint(); dae2.setUuid(UUID.randomUUID().toString()); dae2.setApiType("Prometheus"); dae2.setUri(URI.create("http://localhost:9091/api/v1/query?query=down")); List<DataAccessEndpoint> endpoints = new ArrayList<>(mcj.getDataAccessEndpoint()); endpoints.add(dae2); mcj.setDataAccessEndpoint(endpoints); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } @Test void testRestartPendingOrInProgressJobs_skipsJobWithMultipleScheduleDefinitions() { MeasurementCollectionJob mcj = validMCJ(); ScheduleDefinition schedule2 = new ScheduleDefinition(); schedule2.setScheduleDefinitionStartTime(OffsetDateTime.now().plusSeconds(2)); schedule2.setScheduleDefinitionEndTime(OffsetDateTime.now().plusHours(2)); List<ScheduleDefinition> schedules = new ArrayList<>(mcj.getScheduleDefinition()); schedules.add(schedule2); mcj.setScheduleDefinition(schedules); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } @Test void testRestartPendingOrInProgressJobs_skipsJobWithEndedScheduleDefinition() { MeasurementCollectionJob mcj = validMCJ(); OffsetDateTime start = OffsetDateTime.now().minusHours(2); OffsetDateTime end = OffsetDateTime.now().minusHours(1); mcj.getScheduleDefinition().get(0).setScheduleDefinitionStartTime(start); mcj.getScheduleDefinition().get(0).setScheduleDefinitionEndTime(end); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } @Test void testRestartPendingOrInProgressJobs_jobWithNoScheduleDefinition_addsAndSkipsIfEnded() { MeasurementCollectionJob mcj = validMCJ(); mcj.setScheduleDefinition(new ArrayList<>()); // No schedule definitions mcj.setCreationTime(OffsetDateTime.now().minusHours(2)); ArrayList <MeasurementCollectionJob> mcjList = new ArrayList<>(); mcjList.add(mcj); when(metricoCommonMethods.listPendingOrInProgressMeasurementCollectionJobs()) .thenReturn(mcjList); when(metricoCommonMethods.retrieveMeasurementCollectionJob(mcj.getUuid())) .thenReturn(mcj); metricoService.restartPendingOrInProgressJobs(); verify(metricoCommonMethods).updateMeasurementCollectionJobById(eq(mcj.getUuid()), any(MeasurementCollectionJobMVO.class)); verify(jobService).stopAllJobs(); } } No newline at end of file
src/test/java/org/etsi/osl/metrico/DummyRouteBuilder.javadeleted 100644 → 0 +0 −53 Viewed Changes for src/test/java/org/etsi/osl/metrico/DummyRouteBuilder.java: 0 added lines, 53 removed lines. Original line number Diff line number Diff line package org.etsi.osl.metrico; import org.apache.camel.builder.RouteBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; @Profile("testing") @Component public class DummyRouteBuilder extends RouteBuilder { private static final Logger logger = LoggerFactory.getLogger(DummyRouteBuilder.class); @Value("${PM_MEASUREMENT_COLLECTION_JOB_UPDATE}") private String PM_MEASUREMENT_COLLECTION_JOB_UPDATE = ""; @Value("${PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID}") private String PM_MEASUREMENT_COLLECTION_GET_JOB_BY_ID = ""; @Value("${PM_MEASUREMENT_COLLECTION_JOBS_GET}") private String PM_MEASUREMENT_COLLECTION_JOBS_GET = ""; @Value("${CATALOG_GET_SERVICE_BY_ID}") private String CATALOG_GET_SERVICE_BY_ID = ""; @Value("${CATALOG_UPD_SERVICE}") private String CATALOG_UPD_SERVICE = ""; @Value("${CATALOG_GET_RESOURCE_BY_ID}") private String CATALOG_GET_RESOURCE_BY_ID = ""; @Value("${CATALOG_UPD_RESOURCE}") private String CATALOG_UPD_RESOURCE = ""; @Value("${CATALOG_UPDADD_RESOURCESPEC}") private String CATALOG_UPDADD_RESOURCESPEC = ""; private final String measurementCollectionJobJson = "{\n" + " \"outputFormat\": \"JSON\",\n" + " \"@type\": \"MeasurementCollectionJob\",\n" + " \"consumingApplicationId\": \"app123\",\n" + " \"producingApplicationId\": \"app456\",\n" + " \"dataAccessEndpoint\": [],\n" + " \"jobPriority\": 1,\n" + " \"lastModifiedTime\": \"2023-01-01T00:00:00Z\",\n" + " \"scheduleDefinition\": []\n" + "}"; @Override public void configure() throws Exception { logger.info("Configuring dummy routes..."); from("direct:PM.MEASUREMENTCOLLECTIONJOB.GET_BY_ID") .process(exchange -> { logger.info("Processing GET_BY_ID route"); exchange.getIn().setBody(measurementCollectionJobJson); }); } } No newline at end of file
src/test/java/org/etsi/osl/metrico/JsonUtilTest.java +10 −0 Viewed Changes for src/test/java/org/etsi/osl/metrico/JsonUtilTest.java: 10 added lines, 0 removed lines. Original line number Diff line number Diff line Loading @@ -44,4 +44,14 @@ class JsonUtilTest { assertNull(jsonString); } @Test void toJsonString_unserializableObject_returnsNull() { class SelfRef { public SelfRef ref; } SelfRef obj = new SelfRef(); obj.ref = obj; // creates a circular reference String jsonString = JsonUtil.toJsonString(obj); assertNull(jsonString); } } No newline at end of file