59 lines
1.3 KiB
Rust
59 lines
1.3 KiB
Rust
use crate::Arg;
|
|
use crate::Command;
|
|
|
|
#[test]
|
|
fn propagate_version() {
|
|
let mut cmd = Command::new("test")
|
|
.propagate_version(true)
|
|
.version("1.1")
|
|
.subcommand(Command::new("sub1"));
|
|
cmd._propagate();
|
|
assert_eq!(
|
|
cmd.get_subcommands().next().unwrap().get_version(),
|
|
Some("1.1")
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn global_setting() {
|
|
let mut cmd = Command::new("test")
|
|
.disable_version_flag(true)
|
|
.subcommand(Command::new("subcmd"));
|
|
cmd._propagate();
|
|
assert!(
|
|
cmd.get_subcommands()
|
|
.find(|s| s.get_name() == "subcmd")
|
|
.unwrap()
|
|
.is_disable_version_flag_set()
|
|
);
|
|
}
|
|
|
|
// This test will *fail to compile* if Command is not Send + Sync
|
|
#[test]
|
|
fn app_send_sync() {
|
|
fn foo<T: Send + Sync>(_: T) {}
|
|
foo(Command::new("test"));
|
|
}
|
|
|
|
#[test]
|
|
fn issue_2090() {
|
|
let mut cmd = Command::new("cmd")
|
|
.disable_version_flag(true)
|
|
.subcommand(Command::new("sub"));
|
|
cmd._build_self(false);
|
|
|
|
assert!(
|
|
cmd.get_subcommands()
|
|
.next()
|
|
.unwrap()
|
|
.is_disable_version_flag_set()
|
|
);
|
|
}
|
|
|
|
// This test will *fail to compile* if Arg is not Send + Sync
|
|
#[test]
|
|
fn arg_send_sync() {
|
|
fn foo<T: Send + Sync>(_: T) {}
|
|
foo(Arg::new("test"));
|
|
}
|