diff --git a/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java index 27f28609398520324ed8f5ae6e0c766e7fc3e78f..ed20d281d98f63037f95733aa1719d879cbb3a93 100644 --- a/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java +++ b/src/main/java/org/etsi/osl/tmf/pm628/api/MeasurementCollectionJobApiRouteBuilder.java @@ -3,25 +3,20 @@ package org.etsi.osl.tmf.pm628.api; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.camel.LoggingLevel; -import org.apache.camel.ProducerTemplate; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.model.dataformat.JsonLibrary; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.etsi.osl.centrallog.client.CentralLogger; -import org.etsi.osl.tmf.pm628.model.ExecutionStateType; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobFVO; import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJobMVO; import org.etsi.osl.tmf.pm628.reposervices.MeasurementCollectionJobService; -import org.etsi.osl.tmf.pm628.api.MeasurementCollectionJobApiRouteBuilder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.stereotype.Component; import java.io.IOException; -import java.util.List; -import java.util.Map; @Configuration @Component @@ -47,9 +42,6 @@ public class MeasurementCollectionJobApiRouteBuilder extends RouteBuilder { @Value("${PM_MEASUREMENT_COLLECTION_JOB_GET_INPROGRESS_OR_PENDING}") private String PM_MEASUREMENT_COLLECTION_JOB_GET_INPROGRESS_OR_PENDING; - @Autowired - private ProducerTemplate template; - @Autowired MeasurementCollectionJobService measurementCollectionJobService; diff --git a/src/test/java/org/etsi/osl/services/api/pm628/ManagementJobMVOTest.java b/src/test/java/org/etsi/osl/services/api/pm628/ManagementJobMVOTest.java new file mode 100644 index 0000000000000000000000000000000000000000..27275dfbafea5019c3630e65e451bdfbe7afb5c1 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/pm628/ManagementJobMVOTest.java @@ -0,0 +1,35 @@ +package org.etsi.osl.services.api.pm628; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pm628.model.ExecutionStateType; +import org.etsi.osl.tmf.pm628.model.ManagementJobMVO; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class ManagementJobMVOTest { + + private final ObjectMapper objectMapper = new ObjectMapper(); + + @Test + void testToStringShowsExecutionState() { + ManagementJobMVO job = new ManagementJobMVO("ManagementJob"); + job.setExecutionState(ExecutionStateType.ACKNOWLEDGED); + + String str = job.toString(); + // executionState is not included in the default toString, so this will fail unless you add it to the toString method + assertTrue(str.contains("executionState: acknowledged"), "Default toString does not show executionState"); + } + + @Test + void testSerializationDeserialization() throws Exception { + ManagementJobMVO job = new ManagementJobMVO("ManagementJob"); + job.setExecutionState(ExecutionStateType.ACKNOWLEDGED); + + String json = objectMapper.writeValueAsString(job); + ManagementJobMVO deserialized = objectMapper.readValue(json, ManagementJobMVO.class); + + assertEquals(job, deserialized); + assertEquals(ExecutionStateType.ACKNOWLEDGED, deserialized.getExecutionState()); + } +} \ No newline at end of file diff --git a/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobMVOTest.java b/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobMVOTest.java new file mode 100644 index 0000000000000000000000000000000000000000..5b34a0c8cf85441b7e77fce9aee274350bfead35 --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/pm628/MeasurementCollectionJobMVOTest.java @@ -0,0 +1,48 @@ +package org.etsi.osl.services.api.pm628; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.etsi.osl.tmf.pm628.model.*; +import org.junit.jupiter.api.Test; + +import java.util.Collections; + +import static org.junit.jupiter.api.Assertions.*; + +class MeasurementCollectionJobMVOTest { + + private final ObjectMapper objectMapper = new ObjectMapper(); + + @Test + void testToString() { + MeasurementCollectionJobMVO job = new MeasurementCollectionJobMVO("MeasurementCollectionJob") + .outputFormat("JSON") + .jobOnDemand(true); + job.setExecutionState(ExecutionStateType.ACKNOWLEDGED); + + String str = job.toString(); + assertTrue(str.contains("outputFormat: JSON")); + assertTrue(str.contains("jobOnDemand: true")); + assertTrue(str.contains("executionState: acknowledged")); + assertTrue(str.contains("class MeasurementCollectionJobMVO")); + } + + @Test + void testSerializationDeserialization() throws Exception { + MeasurementCollectionJobMVO job = new MeasurementCollectionJobMVO("MeasurementCollectionJob") + .outputFormat("JSON") + .jobOnDemand(false); + + // Set a nested object for better coverage + job.setReportingPeriod(ReportingPeriod.R_1H); + job.setExecutionState(ExecutionStateType.ACKNOWLEDGED); + + String json = objectMapper.writeValueAsString(job); + MeasurementCollectionJobMVO deserialized = objectMapper.readValue(json, MeasurementCollectionJobMVO.class); + + assertEquals(job, deserialized); + assertEquals("JSON", deserialized.getOutputFormat()); + assertFalse(deserialized.getJobOnDemand()); + assertNotNull(deserialized.getReportingPeriod()); + assertEquals(ExecutionStateType.ACKNOWLEDGED, deserialized.getExecutionState()); + } +} \ No newline at end of file diff --git a/src/test/java/org/etsi/osl/services/api/pm628/SerializationTest.java b/src/test/java/org/etsi/osl/services/api/pm628/SerializationTest.java new file mode 100644 index 0000000000000000000000000000000000000000..6d7bf41356702236ddaade97737af96038fd6f0f --- /dev/null +++ b/src/test/java/org/etsi/osl/services/api/pm628/SerializationTest.java @@ -0,0 +1,51 @@ +package org.etsi.osl.services.api.pm628; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.jsontype.BasicPolymorphicTypeValidator; +import org.etsi.osl.tmf.pm628.model.MeasurementCollectionJob; +import org.junit.jupiter.api.Test; + +import java.util.ArrayList; +import java.util.List; +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class SerializationTest { + + @Test + public void testJsonArraySerialization() throws Exception { + ObjectMapper objectMapper = new ObjectMapper(); + + // Create a list of objects to serialize + MeasurementCollectionJob job1 = new MeasurementCollectionJob("JobType1").outputFormat("JSON"); + job1.setType("MeasurementCollectionJob"); + MeasurementCollectionJob job2 = new MeasurementCollectionJob("JobType2").outputFormat("JSON"); + job2.setType("MeasurementCollectionJob"); + String job1Str = objectMapper.writeValueAsString(job1); + System.out.println(job1Str); +// List jobs = List.of(job1, job2); + List jobs = new ArrayList<>(); + jobs.add(job1); + jobs.add(job2); + + // Serialize the list to JSON + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + objectMapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); + + String jsonArray = objectMapper.writeValueAsString(jobs); + System.out.println(jsonArray); + + // Deserialize the JSON back to a list + List deserializedJobs = objectMapper.readValue( + jsonArray, + objectMapper.getTypeFactory().constructCollectionType(List.class, MeasurementCollectionJob.class) + ); + + // Assert the deserialized list matches the original + assertEquals(jobs.size(), deserializedJobs.size()); + assertEquals(jobs.get(0).getOutputFormat(), deserializedJobs.get(0).getOutputFormat()); + assertEquals(jobs.get(1).getOutputFormat(), deserializedJobs.get(1).getOutputFormat()); + } +} \ No newline at end of file