#[cfg(test)]
mod tests {
use libmake::generators::toml::generate_from_toml;
use std::fs::File;
use std::io::Write;
use tempfile::tempdir;
#[test]
fn test_generate_from_toml_success() {
let file_path = "./tests/data/mylibrary.toml";
generate_from_toml(file_path).unwrap();
assert_eq!(true, true);
}
#[test]
fn test_generate_from_toml_file_not_found() {
let result = generate_from_toml("non_existent_file.toml");
assert!(result.is_err());
}
#[test]
fn test_generate_from_toml_cannot_read() {
let dir = tempdir().unwrap();
let file_path = dir.path().join("test.toml");
std::fs::create_dir(&file_path).unwrap();
let result = generate_from_toml(file_path.to_str().unwrap());
assert!(result.is_err());
}
#[test]
fn test_generate_from_toml_invalid_utf8() {
let dir = tempdir().unwrap();
let file_path = dir.path().join("test.toml");
let mut file = File::create(&file_path).unwrap();
file.write_all(&[0x80, 0x81, 0x82]).unwrap();
let result = generate_from_toml(file_path.to_str().unwrap());
assert!(result.is_err());
}
#[test]
fn test_generate_from_toml_deserialize_error() {
let dir = tempdir().unwrap();
let file_path = dir.path().join("test.toml");
let invalid_toml_data = r#"
invalid_field = "invalid_value"
"#;
let mut file = File::create(&file_path).unwrap();
file.write_all(invalid_toml_data.as_bytes()).unwrap();
let result = generate_from_toml(file_path.to_str().unwrap());
assert!(result.is_err());
}
#[test]
fn test_generate_from_toml_generate_files_error() {
let dir = tempdir().unwrap();
let file_path = dir.path().join("test.toml");
let toml_data = r#"
output = "test_output_dir"
"#;
let mut file = File::create(&file_path).unwrap();
file.write_all(toml_data.as_bytes()).unwrap();
let result = generate_from_toml(file_path.to_str().unwrap());
assert!(result.is_err());
}
}