use std::io::{Cursor, Write};
use serde::Serialize;
use serde_bytes::ByteBuf;
use serde_osc::ser::Serializer;
#[test]
fn tuple_ser() {
let test_input = (
"/example/path".to_owned(),
(
0x01020304i32,
440.0f32,
ByteBuf::from(vec![0xde, 0xad, 0xbe, 0xef, 0xff]),
)
);
let expected = b"\x00\x00\x00\x2C/example/path\0\0\0,ifb\0\0\0\0\x01\x02\x03\x04\x43\xdc\0\0\0\0\0\x05\xde\xad\xbe\xef\xff\x00\x00\x00".to_vec();
let mut output = Cursor::new(Vec::new());
{
let mut test_de = Serializer::new(output.by_ref());
let _result = test_input.serialize(&mut test_de).unwrap();
}
assert_eq!(output.into_inner(), expected);
}
#[test]
fn unit_ser() {
let test_input = (
"/ts".to_owned(), ()
);
let expected = b"\x00\x00\x00\x08/ts\0,\0\0\0".to_vec();
let mut output = Cursor::new(Vec::new());
{
let mut test_de = Serializer::new(output.by_ref());
let _result = test_input.serialize(&mut test_de).unwrap();
}
assert_eq!(output.into_inner(), expected);
}