use std::error::Error;
use std::io::Cursor;
use fluvio_dataplane_protocol::produce::{DefaultProduceRequest};
use fluvio_protocol::Decoder;
use fluvio_dataplane_protocol::Isolation;
#[test]
fn test_binary_compatibility() -> Result<(), Box<dyn Error>> {
let old_encoded = std::fs::read("./tests/produce_request.bin")?;
let decoded: DefaultProduceRequest =
Decoder::decode_from(&mut Cursor::new(old_encoded), 7).expect("decoded");
assert_eq!(decoded.timeout.as_millis(), 1000);
assert_eq!(decoded.transactional_id, Some("transaction_id".to_owned()));
assert_eq!(decoded.isolation, Isolation::ReadCommitted);
assert_eq!(decoded.topics[0].name, "topic".to_owned());
assert_eq!(decoded.topics[0].partitions[0].partition_index, 1);
assert_eq!(decoded.topics[0].partitions[0].records.batches.len(), 1);
Ok(())
}