use std::path::Path;
use openusd::usd;
mod common;
mod generated {
include!("declarations/generated.rs");
}
#[test]
fn compiled_family_registers() {
let manifest = Path::new(env!("CARGO_MANIFEST_DIR"));
let output = openusd_build::configure()
.plug_info(manifest.join("fixtures/tiny/plugInfo.json"))
.build_declarations("tinyKinds")
.expect("the plugin generates");
common::matches(&manifest.join("tests/declarations/generated.rs"), &output.rust);
assert_eq!(generated::SCHEMAS.name(), "tinyKinds");
assert!(generated::SCHEMAS.schemas().is_empty());
let registry = usd::SchemaRegistry::builder()
.register(generated::SCHEMAS)
.build()
.expect("the compiled family registers");
let kinds = registry.kinds();
assert!(kinds.is_assembly("tinyCrowd") && kinds.is_group("tinyCrowd"));
assert!(kinds.is_component("tinyProp") && !kinds.is_group("tinyProp"));
assert!(kinds.has_kind("tinyMarker") && !kinds.is_model("tinyMarker"));
assert_eq!(kinds.base_kind("tinyMarker"), None, "an empty baseKind is no base");
assert!(!kinds.has_kind("tinyGroup"));
assert_eq!(
registry.schema_infos().count(),
usd::SchemaRegistry::global().schema_infos().count()
);
}