use crate::args::{Args, ArgsNew};
use std::env;
#[test]
fn cmd_from() {
println!("{:?}", env::args());
for argument in env::args() {
println!("{argument}");
}
}
#[test]
fn args_contain_opts() {
let input: Vec<String> = vec![String::from("rustc"), String::from("--version")];
let args = <Args as ArgsNew<&Vec<String>>>::new(&input);
assert_eq!(args.contain_opts(vec!["version"]), true);
let input: Vec<String> = vec![String::from("--version")];
let args = Args::new(&input);
assert_eq!(args.contain_opts(vec!["version"]), true);
let input = vec!["-Xyz"];
let args = Args::new(input);
assert_eq!(args.contain_opts(vec!["z"]), true);
let input: Vec<String> = vec![
String::from("git"),
String::from("remote"),
String::from("set-url"),
String::from("--add"),
];
let args = Args::new(input);
assert_eq!(args.contain_opts(vec!["add"]), true);
let args = Args::from_str("git log --stat");
assert_eq!(args.contain_opts(vec!["stat", "test"]), true);
}
#[test]
fn parse() {
let input: Vec<String> = vec![String::from("test-pool"), String::from("main")];
let args = <Args as ArgsNew<&Vec<String>>>::new(&input);
assert_eq!(args.command, "test-pool");
let args = Args::from_str("git status");
assert_eq!(args.sub_command, "status");
}
#[test]
fn test_get_value_string() {
let input: Vec<String> = vec![
String::from("test-pool"),
String::from("main"),
String::from("--name"),
String::from("joshua"),
];
let args = <Args as ArgsNew<&Vec<String>>>::new(&input);
assert_eq!(args.get_value_string(vec!["name"]), "joshua");
let ipt2 = vec!["git", "--name", "joshua", "Conero"];
let args = <Args as ArgsNew<Vec<&str>>>::new(ipt2);
assert_eq!(args.get_value_string(vec!["name"]), "joshua Conero");
}