use bitvec::order::{Lsb0, Msb0};
use crate::protocol::{
prelude::common::{
bits::{BitDecoder, Frame, FrameDecoder, FrameEncoder},
event::EventDecoder,
},
versions::Version,
};
#[test]
fn test() {
let mut encoder: FrameEncoder<Lsb0> = FrameEncoder::<Lsb0>::new(Version::V1.to_u8()).unwrap();
let frame: Vec<u8> = encoder
.encode(Box::new(
crate::server::prelude::versions::v1::c0x0006::InteractionResponse::new(
0,
Some(serde_json::json!({
"test": 5
})),
),
))
.unwrap();
let mut decoder = BitDecoder::<Msb0>::new(frame);
let mut frame_decoder = FrameDecoder::<Msb0>::new(decoder.clone());
let data: Frame<Msb0> = frame_decoder.decode().unwrap();
decoder = frame_decoder.get_decoder().to_owned();
let mut decoded_data =
crate::client::prelude::versions::v1::r0x0006::InteractionResponse::new(decoder);
decoded_data.decode(data).unwrap();
assert_eq!(decoded_data.request_id, 0);
assert!(decoded_data.response.is_some());
let response = decoded_data.response.unwrap();
let v = response.as_object().unwrap();
assert_eq!(v.get("test").unwrap().as_i64().unwrap(), 5);
}