#[cfg(test)] mod tests { use crate::meta_plugin::program::MetaPluginProgram; use crate::meta_plugin::MetaPlugin; #[test] fn test_meta_plugin_program_creation() { let mut plugin = MetaPluginProgram::new( "echo", vec!["test"], "test_plugin".to_string(), false, ); assert_eq!(plugin.meta_name(), "test_plugin"); // If echo is available, it should be supported // We don't assert on is_supported() as it depends on system availability } #[test] fn test_meta_plugin_program_create_writer() { let plugin = MetaPluginProgram::new( "cat", vec![], "cat_plugin".to_string(), false, ); // Creating a writer should work for valid programs let result = plugin.create(); // We don't assert success as it depends on system availability // but we ensure it doesn't panic let _ = result; } #[test] fn test_meta_plugin_program_unsupported() { let plugin = MetaPluginProgram::new( "nonexistent_program_xyz", vec![], "bad_plugin".to_string(), false, ); // An unsupported plugin should report as such // Note: This might still be supported if the program exists let _ = plugin.is_supported(); } }