2015-08-27 21:03:45 +00:00
|
|
|
extern crate clap;
|
|
|
|
|
|
|
|
use clap::{App, Arg};
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn opts_using_short() {
|
2016-01-22 04:18:52 +00:00
|
|
|
let r = App::new("opts")
|
2016-01-21 05:18:53 +00:00
|
|
|
.args(&mut [
|
2015-08-27 21:03:45 +00:00
|
|
|
Arg::from_usage("-f [flag] 'some flag'"),
|
|
|
|
Arg::from_usage("-c [color] 'some other flag'")
|
|
|
|
])
|
2016-01-22 04:18:52 +00:00
|
|
|
.get_matches_from_safe(vec!["myprog", "-f", "some", "-c", "other"]);
|
|
|
|
assert!(r.is_ok());
|
|
|
|
let m = r.unwrap();
|
2015-08-27 21:03:45 +00:00
|
|
|
assert!(m.is_present("flag"));
|
|
|
|
assert_eq!(m.value_of("flag").unwrap(), "some");
|
|
|
|
assert!(m.is_present("color"));
|
|
|
|
assert_eq!(m.value_of("color").unwrap(), "other");
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn opts_using_long_space() {
|
2016-01-22 04:18:52 +00:00
|
|
|
let r = App::new("opts")
|
2016-01-21 06:48:30 +00:00
|
|
|
.args(&[
|
2015-08-27 21:03:45 +00:00
|
|
|
Arg::from_usage("--flag [flag] 'some flag'"),
|
|
|
|
Arg::from_usage("--color [color] 'some other flag'")
|
|
|
|
])
|
2016-01-22 04:18:52 +00:00
|
|
|
.get_matches_from_safe(vec!["myprog", "--flag", "some", "--color", "other"]);
|
|
|
|
assert!(r.is_ok());
|
|
|
|
let m = r.unwrap();
|
2015-08-27 21:03:45 +00:00
|
|
|
assert!(m.is_present("flag"));
|
|
|
|
assert_eq!(m.value_of("flag").unwrap(), "some");
|
|
|
|
assert!(m.is_present("color"));
|
|
|
|
assert_eq!(m.value_of("color").unwrap(), "other");
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn opts_using_long_equals() {
|
2016-01-22 04:18:52 +00:00
|
|
|
let r = App::new("opts")
|
2016-01-21 06:48:30 +00:00
|
|
|
.args(&[
|
2015-08-27 21:03:45 +00:00
|
|
|
Arg::from_usage("--flag [flag] 'some flag'"),
|
|
|
|
Arg::from_usage("--color [color] 'some other flag'")
|
|
|
|
])
|
2016-01-22 04:18:52 +00:00
|
|
|
.get_matches_from_safe(vec!["myprog", "--flag=some", "--color=other"]);
|
|
|
|
assert!(r.is_ok());
|
|
|
|
let m = r.unwrap();
|
2015-08-27 21:03:45 +00:00
|
|
|
assert!(m.is_present("flag"));
|
|
|
|
assert_eq!(m.value_of("flag").unwrap(), "some");
|
|
|
|
assert!(m.is_present("color"));
|
|
|
|
assert_eq!(m.value_of("color").unwrap(), "other");
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn opts_using_mixed() {
|
2016-01-22 04:18:52 +00:00
|
|
|
let r = App::new("opts")
|
2016-01-21 06:48:30 +00:00
|
|
|
.args(&[
|
2015-08-27 21:03:45 +00:00
|
|
|
Arg::from_usage("-f, --flag [flag] 'some flag'"),
|
|
|
|
Arg::from_usage("-c, --color [color] 'some other flag'")
|
|
|
|
])
|
2016-01-22 04:18:52 +00:00
|
|
|
.get_matches_from_safe(vec!["myprog", "-f", "some", "--color", "other"]);
|
|
|
|
assert!(r.is_ok());
|
|
|
|
let m = r.unwrap();
|
2015-08-27 21:03:45 +00:00
|
|
|
assert!(m.is_present("flag"));
|
|
|
|
assert_eq!(m.value_of("flag").unwrap(), "some");
|
|
|
|
assert!(m.is_present("color"));
|
|
|
|
assert_eq!(m.value_of("color").unwrap(), "other");
|
2016-01-22 04:18:52 +00:00
|
|
|
}
|
2015-08-27 21:03:45 +00:00
|
|
|
|
2016-01-22 04:18:52 +00:00
|
|
|
#[test]
|
|
|
|
fn opts_using_mixed2() {
|
|
|
|
let r = App::new("opts")
|
2016-01-21 06:48:30 +00:00
|
|
|
.args(&[
|
2015-08-27 21:03:45 +00:00
|
|
|
Arg::from_usage("-f, --flag [flag] 'some flag'"),
|
|
|
|
Arg::from_usage("-c, --color [color] 'some other flag'")
|
|
|
|
])
|
2016-01-22 04:18:52 +00:00
|
|
|
.get_matches_from_safe(vec!["myprog", "--flag=some", "-c", "other"]);
|
|
|
|
assert!(r.is_ok());
|
|
|
|
let m = r.unwrap();
|
2015-08-27 21:03:45 +00:00
|
|
|
assert!(m.is_present("flag"));
|
|
|
|
assert_eq!(m.value_of("flag").unwrap(), "some");
|
|
|
|
assert!(m.is_present("color"));
|
|
|
|
assert_eq!(m.value_of("color").unwrap(), "other");
|
2016-01-21 05:18:53 +00:00
|
|
|
}
|