// use bytes::{BufMut, BytesMut}; // use mqttbytes::v4::{mqtt_read, Packet, PubAck, Publish}; // use mqttbytes::QoS; // use rand::Rng; // // #[test] // fn publish_encode_and_decode_works_as_expected() { // let mut stream = publishes(1024, 2 * 1024 * 1024); // let mut pkid = 0; // // // stream which decoder reads from // let mut read_stream = BytesMut::new(); // loop { // // fill the decoder stream with n bytes. // let fill_size = rand::thread_rng().gen_range(0, 1024); // let len = stream.len(); // let split_len = if len == 0 { // break; // } else if len > fill_size { // fill_size // } else { // len // }; // // let bytes = stream.split_to(split_len); // read_stream.put(bytes); // let packet = match mqtt_read(&mut read_stream, 10 * 1024) { // Err(mqttbytes::Error::InsufficientBytes(_)) => continue, // Err(e) => panic!(e), // Ok(packet) => packet, // }; // // match packet { // Packet::Publish(publish) => { // assert_eq!(publish.pkid, (pkid % 65000) + 1); // pkid = (pkid % 65000) as u16 + 1; // } // _ => panic!("Expecting a publish"), // } // } // } // // pub fn publishes(size: usize, count: usize) -> BytesMut { // let mut stream = BytesMut::new(); // // for i in 0..count { // let payload = vec![i as u8; size]; // let mut packet = Publish::new("hello/mqtt/topic/bytes", QoS::AtLeastOnce, payload); // packet.pkid = (i % 65000) as u16 + 1; // packet.write(&mut stream).unwrap(); // } // // stream // } // // #[test] // fn pubacks_encode_and_decode_works_as_expected() { // let mut stream = pubacks(10 * 1024 * 1024); // let mut pkid = 0; // // // stream which decoder reads from // let mut read_stream = BytesMut::new(); // loop { // // fill the decoder stream with n bytes. // let fill_size = rand::thread_rng().gen_range(0, 10); // let len = stream.len(); // let split_len = if len == 0 { // break; // } else if len > fill_size { // fill_size // } else { // len // }; // // let bytes = stream.split_to(split_len); // read_stream.put(bytes); // let packet = match mqtt_read(&mut read_stream, 10 * 1024) { // Err(mqttbytes::Error::InsufficientBytes(_)) => continue, // Err(e) => panic!(e), // Ok(packet) => packet, // }; // // match packet { // Packet::PubAck(ack) => { // assert_eq!(ack.pkid, (pkid % 65000) + 1); // pkid = (pkid % 65000) as u16 + 1; // } // _ => panic!("Expecting a publish"), // } // } // } // // pub fn pubacks(count: usize) -> BytesMut { // let mut stream = BytesMut::new(); // // for i in 0..count { // let packet = PubAck::new((i % 65000) as u16 + 1); // packet.write(&mut stream).unwrap(); // } // // stream // }