use std::marker::PhantomData;
use wp_connector_api::{SinkReason, SourceReason};
use wp_error::{
codes::SysErrorCode,
config_error::{ConfCore, ConfReason},
parse_error::OMLCodeReason,
run_error::{DistFocus, RunReason, SourceFocus},
};
#[test]
fn test_sys_codes_conf_and_parse() {
let c = ConfReason::<ConfCore>::Syntax("bad".into());
assert_eq!(c.sys_code(), 42201);
let c = ConfReason::<ConfCore>::NotFound("x".into());
assert_eq!(c.sys_code(), 40401);
let o = OMLCodeReason::Syntax("e".into());
assert_eq!(o.sys_code(), 42211);
}
#[test]
fn test_sys_codes_source_and_run() {
let s = SourceReason::NotData;
assert_eq!(s.sys_code(), 20401);
let s = SourceReason::Disconnect;
assert_eq!(s.sys_code(), 49901);
let s = SourceReason::Other;
assert_eq!(s.sys_code(), 50209);
let r = RunReason::Dist(DistFocus::StgCtrl);
assert_eq!(r.sys_code(), 50311);
let r = RunReason::Source(SourceFocus::NoData);
assert_eq!(r.sys_code(), 20401);
let r = RunReason::Source(SourceFocus::Other("x".into()));
assert_eq!(r.sys_code(), 50209);
}
#[test]
fn test_conf_take_propagation() {
let take = ConfReason::<ConfCore>::_Take(PhantomData);
let _f: ConfReason<wp_error::config_error::ConfFeature> = take.clone().into();
let _d: ConfReason<wp_error::config_error::ConfDynamic> = take.into();
}
#[test]
fn test_dist_mock_to_run() {
let rr: RunReason = SinkReason::Mock.into();
assert_eq!(rr.sys_code(), 50311);
}
#[test]
fn test_source_other_preserves_code() {
let rr: RunReason = SourceReason::Other.into();
assert_eq!(rr.sys_code(), 50209);
}
#[test]
fn test_robust_mode_from_str_fallback() {
use wp_error::error_handling::RobustnessMode;
let m: RobustnessMode = "unknown-mode".into();
assert_eq!(format!("{}", m), "debug");
}