use phoxal::bus::{BusMetadata, CodecId, Source, encoding_string};
use phoxal_api::ContractBody;
use phoxal_api::v1 as api;
#[test]
fn encoding_string_carries_only_the_codec() {
let enc = encoding_string(CodecId::MessagePack);
assert_eq!(enc, "phoxal/v0;codec=1");
}
#[test]
fn contract_body_topic_is_version_qualified_on_the_real_tree() {
assert_eq!(
<api::drive::Target as ContractBody>::TOPIC,
"v1/drive/target"
);
assert_eq!(
<api::asset::GetRequest as ContractBody>::TOPIC,
"v1/asset/get"
);
}
#[test]
fn bus_metadata_for_a_real_body_round_trips() {
let meta = BusMetadata {
codec: CodecId::MessagePack.as_u8(),
produced_at_ns: 42,
epoch: 1,
source: Source {
participant: "tester".to_string(),
incarnation: 3,
sequence: 9,
},
};
assert_eq!(BusMetadata::decode(&meta.encode()).unwrap(), meta);
}