dis_rs/common/remove_entity_r/
mod.rs1pub mod builder;
2pub mod model;
3pub mod parser;
4pub mod writer;
5
6#[cfg(test)]
7mod tests {
8 use crate::common::model::DisTimeStamp;
9 use crate::common::model::{Pdu, PduHeader};
10 use crate::common::parser::parse_pdu;
11 use crate::enumerations::{PduType, RequiredReliabilityService};
12 use crate::model::EntityId;
13 use crate::remove_entity_r::model::RemoveEntityR;
14 use bytes::BytesMut;
15
16 #[test]
17 fn remove_entity_r_internal_consistency() {
18 let header = PduHeader::new_v6(1, PduType::RemoveEntityR);
19
20 let body = RemoveEntityR::builder()
21 .with_origination_id(EntityId::new(10, 20, 30))
22 .with_receiving_id(EntityId::new(40, 50, 60))
23 .with_required_reliability_service(RequiredReliabilityService::Acknowledged)
24 .with_request_id(55)
25 .build()
26 .into_pdu_body();
27 let original_pdu =
28 Pdu::finalize_from_parts(header, body, DisTimeStamp::new_absolute_from_secs(100));
29 let pdu_length = original_pdu.header.pdu_length;
30 let original_length = original_pdu.pdu_length();
31
32 let mut buf = BytesMut::with_capacity(pdu_length as usize);
33
34 let serialized_length = original_pdu.serialize(&mut buf).unwrap();
35
36 assert_eq!(original_length, serialized_length);
37
38 let parsed = parse_pdu(&buf);
39 match parsed {
40 Ok(ref pdu) => {
41 assert_eq!(&original_pdu, pdu);
42 }
43 Err(ref err) => {
44 panic!("Parse error: {err}");
45 }
46 }
47 }
48}