use super::*;
fn args(values: &[&str]) -> Vec<String> {
return values.iter().map(|value| { return String::from(*value); }).collect();
}
#[test]
fn an_option_value_is_never_read_as_an_option() {
assert_eq!(replay_options(&args(&["-m", "--gpg-sign=k"])).signing_key, None);
assert_eq!(replay_options(&args(&["--message", "--gpg-sign=k"])).signing_key, None);
assert_eq!(replay_options(&args(&["--author", "--gpg-sign=k"])).signing_key, None);
}
#[test]
fn the_pathspec_separator_ends_the_options() {
assert_eq!(replay_options(&args(&["-m", "x", "--", "--gpg-sign=k"])).signing_key, None);
assert_eq!(replay_options(&args(&["--", "--gpg-sign=key"])).signing_key, None);
}
#[test]
fn the_signing_key_is_read_from_the_long_spelling_only() {
assert_eq!(replay_options(&args(&["--gpg-sign=def"])).signing_key, Some(String::from("def")));
assert_eq!(replay_options(&args(&["-S"])).signing_key, None);
assert_eq!(replay_options(&args(&["--gpg-sign"])).signing_key, None);
assert_eq!(replay_options(&args(&["-Sabc", "-m", "x"])).signing_key, None);
assert_eq!(replay_options(&args(&["-aSabc"])).signing_key, None);
}
#[test]
fn later_options_keep_or_clear_the_key_and_a_value_is_consumed_once() {
assert_eq!(replay_options(&args(&["--gpg-sign=k", "-m", "x"])).signing_key, Some(String::from("k")));
assert_eq!(replay_options(&args(&["--gpg-sign=k", "-S"])).signing_key, None);
assert_eq!(replay_options(&args(&["-m", "x", "--gpg-sign=k"])).signing_key, Some(String::from("k")));
}
#[test]
fn a_pathspec_is_not_a_cluster() {
assert_eq!(replay_options(&args(&["a.txt", "--gpg-sign=k"])).signing_key, Some(String::from("k")));
assert_eq!(replay_options(&args(&["-", "--gpg-sign=k"])).signing_key, Some(String::from("k")));
}
#[test]
fn a_long_option_is_not_a_cluster() {
assert_eq!(replay_options(&args(&["--no-edit", "--gpg-sign=k"])).signing_key, Some(String::from("k")));
assert_eq!(replay_options(&args(&["--dry-run", "-m", "x"])).signing_key, None);
}