libmake 0.2.6

A code generator to reduce repetitive tasks and build high-quality Rust libraries and applications, by providing a simple interface to create projects, generate code, and manage dependencies.
Documentation
#[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");

        // Create a directory with the same name to cause a read error
        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");

        // Write invalid UTF-8 data to the file
        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() {
        // This test assumes that macro_generate_files! returns an error for certain parameters.
        // Adjust the test if necessary based on the actual implementation of the macro.
        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();

        // Mocking or adjusting the macro_generate_files! to return an error would be necessary.
        // This part of the test may require more advanced setup depending on the macro implementation.

        let result = generate_from_toml(file_path.to_str().unwrap());
        assert!(result.is_err());
    }
}