use ach_pubsub::heapless::Publisher;
#[test]
fn base() {
static PUB: Publisher<usize, 3, 2> = Publisher::new(false);
let sub1 = PUB.subscribe().unwrap();
let sub2 = PUB.subscribe().unwrap();
assert!(PUB.subscribe().is_none());
assert_eq!(PUB.send(1), 2);
assert_eq!(PUB.send(2), 2);
assert_eq!(PUB.send(3), 2);
assert_eq!(PUB.send(4), 0); assert_eq!(sub1.try_recv().unwrap(), 1);
assert_eq!(sub2.try_recv().unwrap(), 1);
assert_eq!(PUB.send(5), 2);
assert_eq!(sub1.try_recv().unwrap(), 2);
assert_eq!(sub2.try_recv().unwrap(), 2);
assert!(PUB.subscribe().is_none());
drop(sub2);
assert_eq!(sub1.try_recv().unwrap(), 3);
assert_eq!(sub1.try_recv().unwrap(), 5);
assert_eq!(PUB.send(6), 1);
let sub3 = PUB.subscribe().unwrap();
assert_eq!(PUB.send(7), 2);
assert_eq!(sub1.try_recv().unwrap(), 6);
assert_eq!(sub1.try_recv().unwrap(), 7);
assert_eq!(sub3.try_recv().unwrap(), 7);
}