PSOPacketData tests
This commit is contained in:
parent
e0d271d703
commit
1810587ad1
75
src/lib.rs
75
src/lib.rs
@ -101,7 +101,7 @@ pub trait PSOPacket: std::fmt::Debug {
|
||||
#[cfg(test)]
|
||||
mod test {
|
||||
use super::*;
|
||||
use psopacket::pso_packet;
|
||||
use psopacket::{pso_packet, PSOPacketData};
|
||||
|
||||
#[test]
|
||||
fn test_basic_pso_packet() {
|
||||
@ -161,7 +161,7 @@ mod test {
|
||||
#[test]
|
||||
fn test_custom_type_in_packet() {
|
||||
#[derive(Clone, Debug, PartialEq)]
|
||||
struct MyType {
|
||||
pub struct MyType {
|
||||
k: u8,
|
||||
j: u32,
|
||||
}
|
||||
@ -318,4 +318,75 @@ mod test {
|
||||
let test2 = Test::from_bytes(&bytes);
|
||||
assert!(test2 == Err(PacketParseError::WrongPacketCommand));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_derive_pso_data_packet() {
|
||||
#[derive(PSOPacketData, Debug, PartialEq)]
|
||||
struct Test {
|
||||
a: u8,
|
||||
b: u32,
|
||||
c: u16,
|
||||
}
|
||||
|
||||
let test = Test {
|
||||
a: 12,
|
||||
b: 34567,
|
||||
c: 890,
|
||||
};
|
||||
|
||||
let mut bytes = test.as_bytes();
|
||||
assert!(bytes == vec![12, 7, 135, 0, 0, 122, 3]);
|
||||
bytes[2] = 17;
|
||||
let mut cur = std::io::Cursor::new(bytes.clone());
|
||||
let test2 = Test::from_bytes(&mut cur).unwrap();
|
||||
assert!(test2 == Test {
|
||||
a: 12,
|
||||
b: 4359,
|
||||
c: 890
|
||||
});
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_derive_pso_data_packet_not_enough_data() {
|
||||
#[derive(PSOPacketData, Debug, PartialEq)]
|
||||
struct Test {
|
||||
a: u8,
|
||||
b: u32,
|
||||
c: u16,
|
||||
}
|
||||
|
||||
let test = Test {
|
||||
a: 12,
|
||||
b: 34567,
|
||||
c: 890,
|
||||
};
|
||||
|
||||
let mut bytes = test.as_bytes();
|
||||
bytes.extend(test.as_bytes());
|
||||
|
||||
let mut cur = std::io::Cursor::new(bytes.clone());
|
||||
let test2 = Test::from_bytes(&mut cur).unwrap();
|
||||
assert!(test2 == Test {
|
||||
a: 12,
|
||||
b: 34567,
|
||||
c: 890,
|
||||
});
|
||||
|
||||
let bytes2 = (0..14).collect::<Vec<_>>();
|
||||
let mut cur = std::io::Cursor::new(bytes2);
|
||||
let test3 = Test::from_bytes(&mut cur);
|
||||
assert!(test3 == Ok(Test {
|
||||
a: 0,
|
||||
b: 67305985,
|
||||
c: 1541,
|
||||
}));
|
||||
let test4 = Test::from_bytes(&mut cur);
|
||||
assert!(test4 == Ok(Test {
|
||||
a: 7,
|
||||
b: 185207048,
|
||||
c: 3340,
|
||||
}));
|
||||
let test5 = Test::from_bytes(&mut cur);
|
||||
assert!(test5 == Err(PacketParseError::NotEnoughBytes));
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user