#[cfg(test)]
mod tests {
use libmake::cli::{build, create_arg};
#[test]
fn test_build_manual_subcommand() {
let matches = build();
assert!(matches.is_ok());
}
#[test]
fn test_create_arg() {
let arg_info = (
"name",
Some("default"),
"help message",
'n',
"name",
"NAME",
);
let arg = create_arg(arg_info);
assert_eq!(arg.get_id(), "name");
assert_eq!(arg.get_help().unwrap().to_string(), "help message");
assert_eq!(arg.get_short().unwrap(), 'n');
assert_eq!(arg.get_long().unwrap(), "name");
let arg_info =
("name", None, "help message", 'n', "name", "NAME");
let arg = create_arg(arg_info);
assert_eq!(arg.get_id(), "name");
assert_eq!(arg.get_help().unwrap().to_string(), "help message");
assert_eq!(arg.get_short().unwrap(), 'n');
assert_eq!(arg.get_long().unwrap(), "name");
let arg_info = ("name", None, "", 'n', "name", "NAME");
let arg = create_arg(arg_info);
assert_eq!(arg.get_id(), "name");
assert_eq!(arg.get_short().unwrap(), 'n');
assert_eq!(arg.get_long().unwrap(), "name");
let arg_info =
("name", None, "help message", 'n', "long-flag", "NAME");
let arg = create_arg(arg_info);
assert_eq!(arg.get_long().unwrap(), "long-flag");
let arg_info = (
"name", None, "", 'n', "name", "NAME",
);
let arg = create_arg(arg_info);
assert!(arg.get_help().is_some());
assert_eq!(arg.get_help().unwrap().to_string(), "");
let arg_info = (
"very-long-argument-name",
None,
"help",
'v',
"very-long-argument-name",
"NAME",
);
let arg = create_arg(arg_info);
assert_eq!(arg.get_id(), "very-long-argument-name");
}
}