use refuse::{CollectionGuard, Root};
#[test]
fn lifecycle() {
let mut guard = CollectionGuard::acquire();
let root = Root::new(42_u32, &guard);
let reference = root.downgrade();
assert_eq!(reference.load(&guard), Some(&42));
guard.collect();
assert_eq!(reference.load(&guard), Some(&42));
drop(root);
guard.collect();
assert_eq!(reference.load(&guard), None);
}