From 2c6ca81669a9ca14409ada3bff0d87df69a79b87 Mon Sep 17 00:00:00 2001 From: Valmo Trindade <70849974+valmojr@users.noreply.github.com> Date: Fri, 7 Aug 2026 14:23:06 -0300 Subject: [PATCH] Add unit coverage for report marker CoT payloads --- src/cot/report_marker.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/cot/report_marker.rs b/src/cot/report_marker.rs index 7e519c0..d192b20 100644 --- a/src/cot/report_marker.rs +++ b/src/cot/report_marker.rs @@ -61,3 +61,37 @@ impl ReportMarkerCoTPayload { } } } + +#[cfg(test)] +mod tests { + use super::ReportMarkerCoTPayload; + use arma_rs::FromArma; + + #[test] + fn parses_report_marker_and_maps_type_remarks_and_stale_time() { + let payload = ReportMarkerCoTPayload::from_arma( + r#"["report-1","b-m-p-s-p-i",-30.1,-51.2,42.0,"SPOTREP",900,"Observed vehicle"]"# + .to_string(), + ) + .expect("report marker should parse"); + + assert_eq!(payload.uuid, "report-1"); + assert_eq!(payload.r#type, "b-m-p-s-p-i"); + assert_eq!(payload.stale_seconds, 900); + assert_eq!(payload.remarks, "Observed vehicle"); + + let cot = payload.to_cot(); + assert_eq!(cot.uuid.as_deref(), Some("report-1")); + assert_eq!(cot.r#type.as_deref(), Some("b-m-p-s-p-i")); + assert_eq!(cot.point_lat, -30.1); + assert_eq!(cot.point_lon, -51.2); + assert_eq!(cot.point_hae, 42.0); + assert_eq!(cot.contact_callsign, "SPOTREP"); + assert_eq!(cot.remarker.as_deref(), Some("Observed vehicle")); + assert_eq!(cot.stale_seconds, Some(900)); + assert!(cot.group_name.is_none()); + assert!(cot.track_course.is_none()); + assert!(cot.link_uid.is_none()); + assert!(cot.video_url.is_none()); + } +}