use std::fs;
use tree_type_proc_macro::tree_type;
tree_type! {
TestTree {
test_file,
test_dir/ {
nested_file
}
}
}
#[test]
fn test_file_methods() {
let temp_dir = std::env::temp_dir().join("tree_type_test_file");
fs::create_dir_all(&temp_dir).unwrap();
let tree = TestTree::new(&temp_dir);
let file = tree.test_file();
assert!(!file.exists());
file.write("hello world").unwrap();
assert!(file.exists());
let content = file.read_to_string().unwrap();
assert_eq!(content, "hello world");
fs::remove_dir_all(&temp_dir).unwrap();
}
#[test]
fn test_directory_methods() {
let temp_dir = std::env::temp_dir().join("tree_type_test_dir");
let _ = fs::remove_dir_all(&temp_dir);
let tree = TestTree::new(&temp_dir);
let dir = tree.test_dir();
assert!(!dir.exists());
dir.create_all().unwrap();
assert!(dir.exists());
let nested = dir.nested_file();
nested.write("nested content").unwrap();
assert_eq!(nested.read_to_string().unwrap(), "nested content");
fs::remove_dir_all(&temp_dir).unwrap();
}