2015-08-27 21:03:45 +00:00
|
|
|
extern crate clap;
|
|
|
|
|
2015-09-06 19:11:18 +00:00
|
|
|
use clap::{App, Arg, SubCommand, AppSettings, ClapErrorType};
|
2015-08-27 21:03:45 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn sub_command_negate_requred() {
|
|
|
|
App::new("sub_command_negate")
|
|
|
|
.setting(AppSettings::SubcommandsNegateReqs)
|
|
|
|
.arg(Arg::with_name("test")
|
|
|
|
.required(true)
|
|
|
|
.index(1))
|
|
|
|
.subcommand(SubCommand::with_name("sub1"))
|
|
|
|
.get_matches_from(vec!["", "sub1"]);
|
2015-09-04 17:16:24 +00:00
|
|
|
}
|
|
|
|
|
2015-09-06 19:11:18 +00:00
|
|
|
#[test]
|
|
|
|
fn sub_command_negate_requred_2() {
|
|
|
|
let result = App::new("sub_command_negate")
|
|
|
|
.setting(AppSettings::SubcommandsNegateReqs)
|
|
|
|
.arg(Arg::with_name("test")
|
|
|
|
.required(true)
|
|
|
|
.index(1))
|
|
|
|
.subcommand(SubCommand::with_name("sub1"))
|
|
|
|
.get_matches_from_safe(vec![""]);
|
|
|
|
assert!(result.is_err());
|
|
|
|
let err = result.err().unwrap();
|
|
|
|
assert_eq!(err.error_type, ClapErrorType::MissingRequiredArgument);
|
|
|
|
}
|
|
|
|
|
2015-09-04 17:16:24 +00:00
|
|
|
#[test]
|
|
|
|
fn app_settings_fromstr() {
|
|
|
|
assert_eq!("subcommandsnegatereqs".parse::<AppSettings>().ok().unwrap(), AppSettings::SubcommandsNegateReqs);
|
|
|
|
assert_eq!("subcommandsrequired".parse::<AppSettings>().ok().unwrap(), AppSettings::SubcommandRequired);
|
|
|
|
assert_eq!("argrequiredelsehelp".parse::<AppSettings>().ok().unwrap(), AppSettings::ArgRequiredElseHelp);
|
|
|
|
assert_eq!("globalversion".parse::<AppSettings>().ok().unwrap(), AppSettings::GlobalVersion);
|
|
|
|
assert_eq!("versionlesssubcommands".parse::<AppSettings>().ok().unwrap(), AppSettings::VersionlessSubcommands);
|
|
|
|
assert_eq!("unifiedhelpmessage".parse::<AppSettings>().ok().unwrap(), AppSettings::UnifiedHelpMessage);
|
|
|
|
assert_eq!("waitonerror".parse::<AppSettings>().ok().unwrap(), AppSettings::WaitOnError);
|
|
|
|
assert_eq!("subcommandrequiredelsehelp".parse::<AppSettings>().ok().unwrap(), AppSettings::SubcommandRequiredElseHelp);
|
|
|
|
assert!("hahahaha".parse::<AppSettings>().is_err());
|
2015-08-27 21:03:45 +00:00
|
|
|
}
|