#[macro_use]
extern crate clapme;
use clapme::ClapMe;
#[test]
fn unique_flag() {
#[derive(ClapMe, PartialEq, Debug)]
struct Opt {
alice: bool,
}
assert!(
Opt::help_message("foo").contains("--alice")
);
assert!(
Opt::help_message("foo").contains("Documentation for alice")
);
assert_eq!(
Opt { alice: true },
Opt::from_iter(&["", "--alice"]).unwrap());
assert_eq!(
Opt { alice: false },
Opt::from_iter(&[""]).unwrap());
assert!(Opt::from_iter(&["", "--bob"]).is_err());
}
#[test]
fn flag_with_underscores() {
#[derive(ClapMe, PartialEq, Debug)]
struct Opt {
this_is_awesome: bool,
}
println!("{}", Opt::help_message("foo"));
assert!(
Opt::help_message("foo").contains("--this-is-awesome ")
);
assert!(
Opt::help_message("foo").contains("Documentation for awesomeness")
);
assert_eq!(
Opt { this_is_awesome: true },
Opt::from_iter(&["", "--this-is-awesome"]).unwrap());
assert_eq!(
Opt { this_is_awesome: false },
Opt::from_iter(&[""]).unwrap());
assert!(Opt::from_iter(&["", "--bob"]).is_err());
}