#![cfg(feature = "serde")]
use dvb_bbframe::crc::crc8;
use dvb_bbframe::header::Bbheader;
use dvb_bbframe::issy::Issy;
#[test]
fn bbheader_serializes_to_valid_json() {
let mut bytes: [u8; 10] = [
0xC0, 0x00, 0x05, 0xC0, 0x17, 0x00, 0x47, 0x00, 0x00, 0x00, ];
bytes[9] = crc8(&bytes[..9]);
let parsed = Bbheader::parse(&bytes).expect("parse BBHEADER");
let v = serde_json::to_value(parsed).expect("serialize Bbheader");
assert!(v.is_object(), "expected JSON object, got {v}");
assert_eq!(v["dfl"], 0x1700);
assert_eq!(v["sync"], 0x47);
}
#[test]
fn issy_serializes_to_valid_json() {
let cases = [
(Issy::IscrShort(0x1234), "IscrShort"),
(Issy::IscrLong(0x0003_FFFF), "IscrLong"),
(Issy::Signalling(0x0012_3456), "Signalling"),
];
for (issy, tag) in cases {
let v = serde_json::to_value(issy).expect("serialize Issy");
assert!(v.get(tag).is_some(), "missing variant tag {tag} in {v}");
}
}