tests: short_flag_alias methods

Tests that cover all methods for `short_flag_alias` corresponding methods
This commit is contained in:
NickHackman 2020-06-16 00:15:47 -04:00
parent acb2f755f8
commit 383606e099

View file

@ -84,8 +84,8 @@ fn flag_subcommand_short_with_alias() {
.long("test") .long("test")
.about("testing testing"), .about("testing testing"),
) )
.alias("M") .short_flag_alias('M')
.alias("B"), .short_flag_alias('B'),
) )
.get_matches_from(vec!["myprog", "-Bt"]); .get_matches_from(vec!["myprog", "-Bt"]);
assert_eq!(matches.subcommand_name().unwrap(), "some"); assert_eq!(matches.subcommand_name().unwrap(), "some");
@ -93,6 +93,89 @@ fn flag_subcommand_short_with_alias() {
assert!(sub_matches.is_present("test")); assert!(sub_matches.is_present("test"));
} }
#[test]
fn flag_subcommand_short_with_aliases_vis_and_hidden() {
let app = App::new("test").subcommand(
App::new("some")
.short_flag('S')
.arg(
Arg::new("test")
.short('t')
.long("test")
.about("testing testing"),
)
.visible_short_flag_aliases(&['M', 'B'])
.short_flag_alias('C'),
);
let app1 = app.clone();
let matches1 = app1.get_matches_from(vec!["test", "-M"]);
assert_eq!(matches1.subcommand_name().unwrap(), "some");
let app2 = app.clone();
let matches2 = app2.get_matches_from(vec!["test", "-C"]);
assert_eq!(matches2.subcommand_name().unwrap(), "some");
let app3 = app.clone();
let matches3 = app3.get_matches_from(vec!["test", "-B"]);
assert_eq!(matches3.subcommand_name().unwrap(), "some");
}
#[test]
fn flag_subcommand_short_with_aliases() {
let matches = App::new("test")
.subcommand(
App::new("some")
.short_flag('S')
.arg(
Arg::new("test")
.short('t')
.long("test")
.about("testing testing"),
)
.short_flag_aliases(&['M', 'B']),
)
.get_matches_from(vec!["myprog", "-Bt"]);
assert_eq!(matches.subcommand_name().unwrap(), "some");
let sub_matches = matches.subcommand_matches("some").unwrap();
assert!(sub_matches.is_present("test"));
}
#[test]
#[should_panic]
fn flag_subcommand_short_with_alias_hyphen() {
let _ = App::new("test")
.subcommand(
App::new("some")
.short_flag('S')
.arg(
Arg::new("test")
.short('t')
.long("test")
.about("testing testing"),
)
.short_flag_alias('-'),
)
.get_matches_from(vec!["myprog", "-Bt"]);
}
#[test]
#[should_panic]
fn flag_subcommand_short_with_aliases_hyphen() {
let _ = App::new("test")
.subcommand(
App::new("some")
.short_flag('S')
.arg(
Arg::new("test")
.short('t')
.long("test")
.about("testing testing"),
)
.short_flag_aliases(&['-', '-', '-']),
)
.get_matches_from(vec!["myprog", "-Bt"]);
}
#[test] #[test]
fn flag_subcommand_long() { fn flag_subcommand_long() {
let matches = App::new("test") let matches = App::new("test")
@ -157,3 +240,53 @@ fn flag_subcommand_multiple() {
assert!(result_matches.is_present("flag")); assert!(result_matches.is_present("flag"));
assert!(result_matches.is_present("print")); assert!(result_matches.is_present("print"));
} }
// #[test]
// #[should_panic]
// fn flag_subcommand_short_conflict_with_arg() {
// let matches = App::new("test")
// .subcommand(
// App::new("some")
// .short_flag('f')
// .long_flag("some")
// .arg(Arg::from("-f, --flag 'some flag'")),
// )
// .get_matches_from(vec!["myprog", "-ff"]);
// }
// #[test]
// #[should_panic]
// fn flag_subcommand_long_conflict_with_arg() {
// let matches = App::new("test")
// .subcommand(
// App::new("some")
// .short_flag('a')
// .long_flag("flag")
// .arg(Arg::from("-f, --flag 'some flag'")),
// )
// .get_matches_from(vec!["myprog", "--flag", "--flag"]);
// }
// #[test]
// fn flag_subcommand_conflict_with_help() {
// let matches = App::new("test")
// .subcommand(
// App::new("halp")
// .short_flag('h')
// .long_flag("help")
// .arg(Arg::from("-f, --flag 'some flag'")),
// )
// .get_matches_from(vec!["myprog", "--help"]);
// }
// #[test]
// fn flag_subcommand_conflict_with_version() {
// let matches = App::new("test")
// .subcommand(
// App::new("ver")
// .short_flag('V')
// .long_flag("version")
// .arg(Arg::from("-f, --flag 'some flag'")),
// )
// .get_matches_from(vec!["myprog", "--version"]);
// }