use std::thread;
use ibag::iCell;
#[test]
fn test_basic_usage() {
let cell = iCell::new(42, false);
assert_eq!(*cell.try_get().unwrap(), 42);
thread::spawn(move || {
assert!(cell.try_get().is_err());
}).join().unwrap();
}
#[test]
fn test_ownership_transfer() {
let cell = iCell::new("test".to_string(), false);
let handle = thread::spawn(move || {
assert!(cell.take_ownership().is_ok());
assert_eq!(cell.try_get().unwrap(), "test");
});
handle.join().unwrap();
}
#[test]
fn test_frozen_cell() {
let cell = iCell::new(true, true);
thread::spawn(move || {
assert!(cell.take_ownership().is_err());
}).join().unwrap();
}