#[cfg(test)]
#[cfg(feature = "maliput_malidrive")]
mod plugin_tests {
use maliput_sys::plugin::ffi::CreateRoadNetwork;
use std::any::Any;
#[test]
fn create_valid_road_network_test() {
std::env::set_var("MALIPUT_PLUGIN_PATH", maliput_sdk::get_maliput_malidrive_plugin_path());
let road_network_loader_id = String::from("maliput_malidrive");
let package_location = env!("CARGO_MANIFEST_DIR");
let xodr_path = format!("opendrive_file:{}/tests/resources/ArcLane.xodr", package_location);
let road_network_properties = vec![xodr_path];
let rn_res = CreateRoadNetwork(&road_network_loader_id, &road_network_properties);
assert!(
rn_res.is_ok(),
"Expected RoadNetwork to be created successfully with ArcLane.xodr"
);
}
#[test]
fn create_invalid_road_network_test() {
std::env::set_var("MALIPUT_PLUGIN_PATH", maliput_sdk::get_maliput_malidrive_plugin_path());
let road_network_loader_id = String::from("maliput_malidrive");
let invalid_xodr_path = "opendrive_file:/hopefully/this/path/does/not/exist.xodr".to_string();
let road_network_properties = vec![invalid_xodr_path];
let rn_res = CreateRoadNetwork(&road_network_loader_id, &road_network_properties);
assert!(
rn_res.is_err(),
"Expected an error when creating RoadNetwork with an invalid xodr_path"
);
let e: cxx::Exception = rn_res.err().unwrap();
assert!(
e.type_id() == std::any::TypeId::of::<cxx::Exception>(),
"Expected cxx::Exception, got: {:?}",
e.type_id()
);
}
}