import com.fasterxml.jackson.databind.ObjectMapper; import de.assecutor.votianlt.dto.JobWithRelatedDataDTO; import de.assecutor.votianlt.model.CargoItem; import de.assecutor.votianlt.model.Job; import de.assecutor.votianlt.model.TaskEntry; import org.bson.types.ObjectId; import java.util.List; /** * Simple test to verify JSON serialization of ObjectIds as strings */ public class JsonSerializationTest { public static void main(String[] args) throws Exception { System.out.println("[DEBUG_LOG] Testing Job ID serialization..."); // Create test data Job job = new Job(); job.setId(new ObjectId()); job.setJobNumber("TEST-001"); CargoItem cargo = new CargoItem(); cargo.setId(new ObjectId()); cargo.setJobId(job.getId()); cargo.setDescription("Test cargo"); TaskEntry task = new TaskEntry(); task.setId(new ObjectId()); task.setJobId(job.getId()); task.setText("Test task"); JobWithRelatedDataDTO dto = new JobWithRelatedDataDTO(job, List.of(cargo), List.of(task)); // Serialize to JSON ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(dto); System.out.println("[DEBUG_LOG] Serialized JSON: " + json); // Check if job ID is serialized as string if (json.contains("\"id\":\"" + job.getId().toString() + "\"")) { System.out.println("[DEBUG_LOG] ✓ Job ID correctly serialized as string"); } else if (json.contains("\"id\":{")) { System.out.println("[DEBUG_LOG] ✗ Job ID serialized as ObjectId object"); } else { System.out.println("[DEBUG_LOG] ? Job ID serialization format unclear"); } // Test individual Job serialization String jobJson = mapper.writeValueAsString(job); System.out.println("[DEBUG_LOG] Individual Job JSON: " + jobJson); if (jobJson.contains("\"id\":\"" + job.getId().toString() + "\"")) { System.out.println("[DEBUG_LOG] ✓ Individual Job ID correctly serialized as string"); } else { System.out.println("[DEBUG_LOG] ✗ Individual Job ID not serialized as string"); } } }