diff options
| author | mat <github@matdoes.dev> | 2022-09-01 20:37:38 -0500 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2022-09-01 20:37:38 -0500 |
| commit | 32458d743f757da3193717fe5554f490703640c0 (patch) | |
| tree | d0e655ac09195c41f6f7d44462d28aab4d1183db /azalea-protocol/src | |
| parent | 4d072d8057518fe233b8e7390f6c1f4c54b1cfc0 (diff) | |
| download | azalea-drasl-32458d743f757da3193717fe5554f490703640c0.tar.xz | |
fix bad u32::write_into and add tests
Diffstat (limited to 'azalea-protocol/src')
| -rwxr-xr-x | azalea-protocol/src/lib.rs | 38 | ||||
| -rwxr-xr-x | azalea-protocol/src/packets/login/serverbound_hello_packet.rs | 23 |
2 files changed, 55 insertions, 6 deletions
diff --git a/azalea-protocol/src/lib.rs b/azalea-protocol/src/lib.rs index b1d1a9c4..f5922e27 100755 --- a/azalea-protocol/src/lib.rs +++ b/azalea-protocol/src/lib.rs @@ -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(); } } diff --git a/azalea-protocol/src/packets/login/serverbound_hello_packet.rs b/azalea-protocol/src/packets/login/serverbound_hello_packet.rs index 7644beae..a6443737 100755 --- a/azalea-protocol/src/packets/login/serverbound_hello_packet.rs +++ b/azalea-protocol/src/packets/login/serverbound_hello_packet.rs @@ -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); + } +} |
