pub struct CompactExternal;
nichlink_run_method::external_object! {
collector: development,
kind: CompactExternal,
}
#[test]
fn a_kind_only_external_face_derives_its_registry_name_from_the_module() {
assert_eq!(REGISTRATION.registry_name, "external_compact_face");
}
#[test]
fn a_kind_only_external_face_hangs_from_the_package_root() {
assert_eq!(
REGISTRATION.parent,
nichlink_run_method::root_node_id(env!("CARGO_PKG_NAME"))
);
}
#[test]
fn a_kind_only_external_face_defaults_preset_and_parts() {
assert_eq!(REGISTRATION.preset, "NoPreset");
assert_eq!(REGISTRATION.parts, "NoParts");
assert_eq!(REGISTRATION.handle, "CompactExternal");
assert_eq!(REGISTRATION.name.zh, "CompactExternal");
assert_eq!(REGISTRATION.params, "CompactExternal");
}
#[test]
fn a_kind_only_external_face_defaults_registry_rule_to_any() {
let rule = REGISTRATION.registry_rule;
assert_eq!(rule.required_preset, None);
assert!(rule.required_parts.is_empty());
assert!(rule.required_exports.is_empty());
assert!(rule.required_handle_traits.is_empty());
assert!(rule.required_part_traits.is_empty());
}
#[test]
fn a_kind_only_external_face_defaults_the_remaining_fields() {
let registered = [REGISTRATION.needs_registry];
assert_eq!(registered, [false]);
assert_eq!(REGISTRATION.getting_from_other_registry, None);
assert!(REGISTRATION.exports.is_empty());
assert!(REGISTRATION.requires.is_empty());
assert!(REGISTRATION.provides.is_empty());
assert!(REGISTRATION.runtime_checks.is_empty());
let portable = nichlink_run_method::registry_core::portable_path(REGISTRATION.source.file);
assert!(
portable.ends_with("tests/external_compact_face.rs"),
"the default names this file, however the build spelled it: {portable}"
);
}