#[cfg(test)]
pub mod tests {
use crate::tests::util::local_debug2;
use wdext::dbgmodel::WdModelObjectKind;
use windows::Win32::Foundation::S_OK;
mod util;
#[test]
fn test_dbgmodel() {
let ctx = local_debug2();
let (manager, host) = ctx.client().get_data_model().unwrap();
let _ctx = host.get_current_context().unwrap();
let message = "test";
let obj = manager.create_no_value_object().unwrap();
assert_eq!(obj.0.get_kind().unwrap(), WdModelObjectKind::NoValue);
let obj = manager.create_error_object(S_OK, message).unwrap();
assert_eq!(obj.0.get_kind().unwrap(), WdModelObjectKind::ObjectError);
assert_eq!(obj.get_message(None).unwrap(), message);
let model_name = "Debugger.Models.Process.WdExtension";
let not_exists = manager.acquire_named_model(model_name).unwrap();
not_exists.get_displayable_string(None).unwrap_err();
obj.register(&manager, model_name).unwrap();
let obj2 = manager.acquire_named_model(model_name).unwrap();
assert!(obj.0 == obj2);
assert_eq!(obj2.get_displayable_string(None).unwrap(), message);
let root = manager.get_root_namespace().unwrap();
let data = root.enumerate_keys().unwrap().collect::<Vec<_>>();
assert_eq!(data.len(), 1);
let data = data.first().unwrap().as_ref().unwrap();
assert_eq!(data.0, "Debugger");
}
}