use std::fs;
use tempfile::TempDir;
use anyhow::Result;
use ferrisup_common::fs::{create_directory, copy_directory};
#[test]
fn test_create_directory_success() -> Result<()> {
let temp_dir = TempDir::new()?;
let test_dir = temp_dir.path().join("test_dir");
create_directory(&test_dir)?;
assert!(test_dir.exists());
assert!(test_dir.is_dir());
Ok(())
}
#[test]
fn test_create_directory_nested() -> Result<()> {
let temp_dir = TempDir::new()?;
let nested_dir = temp_dir.path().join("parent/child/grandchild");
create_directory(&nested_dir)?;
assert!(nested_dir.exists());
assert!(nested_dir.is_dir());
assert!(nested_dir.parent().unwrap().exists());
assert!(nested_dir.parent().unwrap().parent().unwrap().exists());
Ok(())
}
#[test]
fn test_read_cargo_toml_nonexistent() -> Result<()> {
let temp_dir = TempDir::new()?;
let non_existent_dir = temp_dir.path().join("non_existent");
let result = ferrisup_common::cargo::read_cargo_toml(&non_existent_dir);
assert!(result.is_err());
Ok(())
}
#[test]
fn test_copy_directory() -> Result<()> {
let temp_dir = TempDir::new()?;
let src_dir = temp_dir.path().join("src");
let dst_dir = temp_dir.path().join("dst");
fs::create_dir_all(&src_dir)?;
fs::write(src_dir.join("test.txt"), "Hello, world!")?;
copy_directory(&src_dir, &dst_dir)?;
assert!(dst_dir.exists());
assert!(dst_dir.is_dir());
assert!(dst_dir.join("test.txt").exists());
assert_eq!(fs::read_to_string(dst_dir.join("test.txt"))?, "Hello, world!");
Ok(())
}