//! Step-5 test: export a fixture route to `.pln`, `.fms` and OFP text. use std::path::PathBuf; use flightplanner_core::{db, export, routing}; use rusqlite::Connection; fn fixtures_db() -> Connection { let dir = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/fixtures"); let mut conn = Connection::open_in_memory().unwrap(); db::import_navdata(&mut conn, &dir).unwrap(); conn } #[test] fn exports_pln_fms_and_ofp() { let conn = fixtures_db(); let route = routing::plan_route(&conn, "LFPG", "EGLL", None).unwrap(); let pln = export::pln::to_pln(&conn, &route, 34000).unwrap(); assert!(pln.contains("LFPG")); assert!(pln.contains("EGLL")); assert!(pln.contains("Airport")); let fms = export::fms::to_fms(&conn, &route, 34000).unwrap(); assert!(fms.starts_with("I\n1100 Version")); assert!(fms.contains("ADEP LFPG")); assert!(fms.contains("ADES EGLL")); assert!(fms.contains("NUMENR ")); let ofp = export::ofp::to_ofp(&route, None, Some("A320"), Some(340)); assert!(ofp.contains("OPERATIONAL FLIGHT PLAN")); assert!(ofp.contains("LFPG -> EGLL")); assert!(ofp.contains("FL340")); }