mirror of
https://github.com/mat-1/azalea.git
synced 2024-09-19 22:52:32 +00:00
fix bad u32::write_into and add tests
This commit is contained in:
parent
4d072d8057
commit
32458d743f
4 changed files with 67 additions and 7 deletions
|
@ -73,4 +73,15 @@ mod tests {
|
|||
let u = Uuid::from_int_array([0x6536bfed, 0x869548fd, 0x83a1ecd2, 0x4cf2a0fd]);
|
||||
assert_eq!(u.to_string(), "6536bfed-8695-48fd-83a1-ecd24cf2a0fd");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn read_write() {
|
||||
let u = Uuid::parse_str("6536bfed-8695-48fd-83a1-ecd24cf2a0fd").unwrap();
|
||||
let mut buf = Vec::new();
|
||||
u.write_into(&mut buf).unwrap();
|
||||
println!("{:?}", buf);
|
||||
assert_eq!(buf.len(), 16);
|
||||
let u2 = Uuid::read_from(&mut buf.as_slice()).unwrap();
|
||||
assert_eq!(u, u2);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -181,7 +181,7 @@ impl McBufWritable for String {
|
|||
|
||||
impl McBufWritable for u32 {
|
||||
fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> {
|
||||
i16::write_into(&(*self as i16), buf)
|
||||
i32::write_into(&(*self as i32), buf)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -50,9 +50,39 @@ pub async fn connect(address: ServerAddress) -> Result<(), Box<dyn std::error::E
|
|||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
#[test]
|
||||
fn it_works() {
|
||||
let result = 2 + 2;
|
||||
assert_eq!(result, 4);
|
||||
use super::*;
|
||||
use crate::{
|
||||
packets::login::{
|
||||
serverbound_hello_packet::{ProfilePublicKeyData, ServerboundHelloPacket},
|
||||
ServerboundLoginPacket,
|
||||
},
|
||||
read::read_packet,
|
||||
write::write_packet,
|
||||
};
|
||||
use std::io::Cursor;
|
||||
use uuid::Uuid;
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_hello_packet() {
|
||||
let packet = ServerboundHelloPacket {
|
||||
username: "test".to_string(),
|
||||
public_key: Some(ProfilePublicKeyData {
|
||||
expires_at: 0,
|
||||
key: b"idontthinkthisreallymattersijustwantittobelongforthetest".to_vec(),
|
||||
key_signature: b"idontthinkthisreallymattersijustwantittobelongforthetest".to_vec(),
|
||||
}),
|
||||
profile_id: Some(Uuid::from_u128(0)),
|
||||
}
|
||||
.get();
|
||||
let mut stream = Cursor::new(Vec::new());
|
||||
write_packet(packet, &mut stream, None, &mut None)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
stream.set_position(0);
|
||||
|
||||
let _ = read_packet::<ServerboundLoginPacket, _>(&mut stream, None, &mut None)
|
||||
.await
|
||||
.unwrap();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,16 +2,35 @@ use azalea_buf::McBuf;
|
|||
use packet_macros::ServerboundLoginPacket;
|
||||
use uuid::Uuid;
|
||||
|
||||
#[derive(Clone, Debug, McBuf, ServerboundLoginPacket)]
|
||||
#[derive(Clone, Debug, ServerboundLoginPacket, McBuf, PartialEq)]
|
||||
pub struct ServerboundHelloPacket {
|
||||
pub username: String,
|
||||
pub public_key: Option<ProfilePublicKeyData>,
|
||||
pub profile_id: Option<Uuid>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, McBuf)]
|
||||
#[derive(Clone, Debug, McBuf, PartialEq)]
|
||||
pub struct ProfilePublicKeyData {
|
||||
pub expires_at: u64,
|
||||
pub key: Vec<u8>,
|
||||
pub key_signature: Vec<u8>,
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use azalea_buf::{McBufReadable, McBufWritable};
|
||||
|
||||
#[test]
|
||||
fn test_read_write() {
|
||||
let packet = ServerboundHelloPacket {
|
||||
username: "test".to_string(),
|
||||
public_key: None,
|
||||
profile_id: Some(Uuid::from_u128(0)),
|
||||
};
|
||||
let mut buf = Vec::new();
|
||||
packet.write_into(&mut buf).unwrap();
|
||||
let packet2 = ServerboundHelloPacket::read_from(&mut buf.as_slice()).unwrap();
|
||||
assert_eq!(packet, packet2);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue