use ump::{channel, Error};
#[test]
fn sync_weak_should_not_count() {
let (server, client) = channel::<String, String, ()>();
let _weak_client = client.weak();
drop(client);
let Err(Error::ClientsDisappeared) = server.wait() else {
panic!("Unexpected error");
};
}
#[test]
fn async_weak_should_not_count() {
let tokrt = tokio::runtime::Runtime::new().unwrap();
let (server, client) = channel::<String, String, ()>();
let _weak_client = client.weak();
drop(client);
tokrt.block_on(async {
let Err(Error::ClientsDisappeared) = server.async_wait().await else {
panic!("Unexpected error");
};
});
}
#[test]
fn upgraded_should_count() {
let (server, client) = channel::<String, String, ()>();
let weak_client = client.weak();
let Some(_client2) = weak_client.upgrade() else {
panic!("Unable to upgrade weak_client");
};
drop(client);
let Ok(None) = server.try_pop() else {
panic!("Unexpected error");
};
}