refactor(sim): move FrameBuf on dup; vary per-node obs; test disconnect/unreachable

This commit is contained in:
2026-10-17 23:58:15 -07:00
parent 1752bd23ff
commit 1257f227ce
3 changed files with 29 additions and 7 deletions
+15 -1
View File
@@ -3,7 +3,7 @@ use common::PairTransport;
use std::collections::BTreeSet;
use tines_core::observation::Payload;
use tines_core::transport::{Event, FrameBuf, Transport};
use tines_core::transport::{Event, FrameBuf, SendError, Transport};
use tines_core::{consts, LatestWins, MemStore, Node, ObserveError, Store};
#[test]
@@ -206,3 +206,17 @@ fn third_party_observation_propagates_within_contact() {
);
assert_eq!(nb.store().len(), 1);
}
#[test]
fn pair_transport_disconnect_enqueues_lost() {
let (mut a, _b) = PairTransport::pair(1500);
a.disconnect();
assert_eq!(a.poll(), Some(Event::Lost(1)));
}
#[test]
fn pair_transport_send_rejects_unreachable() {
let (mut a, _b) = PairTransport::pair(1500);
// a's only peer is 1; sending to 2 is unreachable.
assert_eq!(a.send(&2, b"hi"), Err(SendError::Unreachable));
}