azalea/azalea-nbt/tests/tests.rs

58 lines
1.6 KiB
Rust

use azalea_nbt::Tag;
use std::{
collections::HashMap,
io::{Cursor, Read},
};
#[test]
fn test_decode_hello_world() {
// read hello_world.nbt
let mut file = std::fs::File::open("tests/hello_world.nbt").unwrap();
let tag = Tag::read(&mut file).unwrap();
assert_eq!(
tag,
Tag::Compound(HashMap::from_iter(vec![(
"hello world".to_string(),
Tag::Compound(HashMap::from_iter(vec![(
"name".to_string(),
Tag::String("Bananrama".to_string()),
)]))
)]))
);
}
#[test]
fn test_roundtrip_hello_world() {
let mut file = std::fs::File::open("tests/hello_world.nbt").unwrap();
let mut original = Vec::new();
file.read_to_end(&mut original).unwrap();
let mut original_stream = Cursor::new(original.clone());
let tag = Tag::read(&mut original_stream).unwrap();
println!("ok read {:?}", tag);
// write hello_world.nbt
let mut result = Cursor::new(Vec::new());
tag.write(&mut result).unwrap();
assert_eq!(result.into_inner(), original);
}
#[test]
fn test_bigtest() {
// read bigtest.nbt
let mut file = std::fs::File::open("tests/bigtest.nbt").unwrap();
let mut original = Vec::new();
file.read_to_end(&mut original).unwrap();
let mut original_stream = Cursor::new(original.clone());
let original_tag = Tag::read_gzip(&mut original_stream).unwrap();
let mut result = Vec::new();
original_tag.write(&mut result).unwrap();
let decoded_tag = Tag::read(&mut Cursor::new(result)).unwrap();
assert_eq!(decoded_tag, original_tag);
}