clap/tests/conflicts.rs
2015-09-30 23:59:40 -04:00

61 lines
No EOL
2 KiB
Rust

extern crate clap;
use clap::{App, Arg, ClapErrorType, ArgGroup};
#[test]
fn flag_conflict() {
let result = App::new("flag_conflict")
.arg(Arg::from_usage("-f, --flag 'some flag'")
.conflicts_with("other"))
.arg(Arg::from_usage("-o, --other 'some flag'"))
.get_matches_from_safe(vec!["", "-f", "-o"]);
assert!(result.is_err());
let err = result.err().unwrap();
assert_eq!(err.error_type, ClapErrorType::ArgumentConflict);
}
#[test]
fn flag_conflict_2() {
let result = App::new("flag_conflict")
.arg(Arg::from_usage("-f, --flag 'some flag'")
.conflicts_with("other"))
.arg(Arg::from_usage("-o, --other 'some flag'"))
.get_matches_from_safe(vec!["", "-o", "-f"]);
assert!(result.is_err());
let err = result.err().unwrap();
assert_eq!(err.error_type, ClapErrorType::ArgumentConflict);
}
#[test]
fn group_conflict() {
let result = App::new("group_conflict")
.arg(Arg::from_usage("-f, --flag 'some flag'")
.conflicts_with("gr"))
.arg_group(ArgGroup::with_name("gr")
.required(true)
.add("some")
.add("other"))
.arg(Arg::from_usage("--some 'some arg'"))
.arg(Arg::from_usage("--other 'other arg'"))
.get_matches_from_safe(vec!["", "--other", "-f"]);
assert!(result.is_err());
let err = result.err().unwrap();
assert_eq!(err.error_type, ClapErrorType::ArgumentConflict);
}
#[test]
fn group_conflict_2() {
let result = App::new("group_conflict")
.arg(Arg::from_usage("-f, --flag 'some flag'")
.conflicts_with("gr"))
.arg_group(ArgGroup::with_name("gr")
.required(true)
.add("some")
.add("other"))
.arg(Arg::from_usage("--some 'some arg'"))
.arg(Arg::from_usage("--other 'other arg'"))
.get_matches_from_safe(vec!["", "-f", "--some"]);
assert!(result.is_err());
let err = result.err().unwrap();
assert_eq!(err.error_type, ClapErrorType::ArgumentConflict);
}