Skip to content

Commit b52c17d

Browse files
committed
Add unit test for multiple transitive refs
1 parent 393d83b commit b52c17d

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

tests/defs/namespace.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1159,6 +1159,12 @@ fn test_namespace_relationship() {
11591159
fn test_namespace_transitive_relationship() {
11601160
let mut map = HashMap::<&str, &Dict>::new();
11611161

1162+
let site = dict! {
1163+
"id" => Value::make_ref("site"),
1164+
"site" => Value::Marker,
1165+
};
1166+
map.insert("site", &site);
1167+
11621168
let ahu = dict! {
11631169
"id" => Value::make_ref("ahu"),
11641170
"ahu" => Value::Marker,
@@ -1171,6 +1177,8 @@ fn test_namespace_transitive_relationship() {
11711177
"discharge" => Value::Marker,
11721178
"fan" => Value::Marker,
11731179
"equip" => Value::Marker,
1180+
// Not typically done but used for indirectly multiple transitive relationships.
1181+
"siteRef" => Value::make_ref("site"),
11741182
"equipRef" => Value::make_ref("ahu"),
11751183
};
11761184
map.insert("fan", &fan);
@@ -1235,6 +1243,18 @@ fn test_namespace_transitive_relationship() {
12351243
&resolve,
12361244
);
12371245
assert!(!has);
1246+
1247+
// true for a point that indirectly references a site
1248+
// The fan has a siteRef that also needs to be traversed as well as the equipRef. This
1249+
// tests multiple transitive relationships on the same dict.
1250+
let has = DEFS_NS.has_relationship(
1251+
&status,
1252+
&Symbol::from("containedBy"),
1253+
&None,
1254+
&Some(Ref::from("site")),
1255+
&resolve,
1256+
);
1257+
assert!(has);
12381258
}
12391259

12401260
#[test]

0 commit comments

Comments
 (0)