use std::env;
use super::*;
#[test]
fn disk_space_new_ok() {
let temp_path = env::temp_dir();
let result = DiskSpace::new(&temp_path);
assert!(result.is_ok(), "DiskSpace::new failed: {:?}", result.err());
let space = result.unwrap();
assert!(space.total > 0, "Total space should be greater than 0");
assert!(
space.available > 0,
"Available space should be greater than 0"
);
assert!(
space.available <= space.total,
"Available space exceeds total space"
);
}
#[test]
fn disk_space_invalid_path_err() {
let invalid_path = Path::new("/path/that/does/not/exist/12345");
let result = DiskSpace::new(invalid_path);
assert!(result.is_err(), "Should fail for non-existent path");
}
#[test]
fn unit_conversions() {
let space = DiskSpace {
available: 1024 * 1024 * 500, total: 1024 * 1024 * 1024 * 2, };
let mb = space.as_mb();
assert_eq!(((10.0 * mb.available).round()) / 10.0, 500.0);
assert_eq!(((10.0 * mb.total).round()) / 10.0, 2048.0);
let gb = space.as_gb();
assert_eq!(((10.0 * gb.available).round()) / 10.0, 0.5);
assert_eq!(((10.0 * gb.total).round()) / 10.0, 2.0);
}