From a9fcfe1bb3ec3685d56aab8ca5b6889edec214a5 Mon Sep 17 00:00:00 2001 From: CosminPerRam Date: Mon, 26 Feb 2024 00:15:33 +0200 Subject: [PATCH] tests: add minecraft varint and string types --- crates/lib/src/games/minecraft/types.rs | 38 +++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/crates/lib/src/games/minecraft/types.rs b/crates/lib/src/games/minecraft/types.rs index 98c2720..5f4f398 100644 --- a/crates/lib/src/games/minecraft/types.rs +++ b/crates/lib/src/games/minecraft/types.rs @@ -294,3 +294,41 @@ pub(crate) fn as_string(value: &str) -> GDResult> { Ok(buf) } + +#[cfg(test)] +mod tests { + use byteorder::LittleEndian; + use crate::buffer::Buffer; + use crate::minecraft::get_string; + use super::{as_varint, get_varint, as_string}; + + #[test] + fn int_as_varint() { + assert_eq!(as_varint(1), [1]); + assert_eq!(as_varint(25565), [221, 199, 1]); + assert_eq!(as_varint(1298923567), [175, 128, 176, 235, 4]); + } + + #[test] + fn varint_as_int() { + let mut buffer = Buffer::::new(&[1, 127, 221, 199, 1, 0]); + assert_eq!(get_varint(&mut buffer), Ok(1)); + assert_eq!(get_varint(&mut buffer), Ok(127)); + assert_eq!(get_varint(&mut buffer), Ok(25565)); + assert_eq!(buffer.remaining_bytes(), [0]); + } + + #[test] + fn string_as_minecraft_string() { + assert_eq!(as_string("A"), Ok(vec![1, 65])); + assert_eq!(as_string("VarString"), Ok(vec![9, 86, 97, 114, 83, 116, 114, 105, 110, 103])); + } + + #[test] + fn minecraft_get_string() { + let mut buffer = Buffer::::new(&[3, 65, 65, 65, 1, 66]); + assert_eq!(get_string(&mut buffer), Ok("AAA".to_string())); + assert_eq!(get_string(&mut buffer), Ok("B".to_string())); + assert_eq!(buffer.remaining_length(), 0); + } +}