use args; use clap::ErrorKind; #[test] fn incorrect_subcommand() { let out = args::get_matches_for(vec!("mdp")); assert!(out.is_err()); assert_eq!(out.unwrap_err().kind, ErrorKind::MissingArgumentOrSubcommand); let out = args::get_matches_for(vec!("mdp", "invalid")); assert!(out.is_err()); assert_eq!(out.unwrap_err().kind, ErrorKind::UnknownArgument); } #[test] fn verbose_number() { fn get_verbose_level(arg_list: Vec<&str>) -> u64 { return args::get_verbose(args::get_matches_for(arg_list).unwrap()); } assert_eq!(get_verbose_level(vec!("mdp", "build", "-v")), 1); assert_eq!(get_verbose_level(vec!("mdp", "build", "-vv")), 2); assert_eq!(get_verbose_level(vec!("mdp", "-v", "build", "-vv")), 3); assert_eq!(get_verbose_level(vec!("mdp", "-vv", "build", "-v")), 3); assert_eq!(get_verbose_level(vec!("mdp", "-v", "build", "-v")), 2); assert_eq!(get_verbose_level(vec!("mdp", "-v", "build")), 1); assert_eq!(get_verbose_level(vec!("mdp", "--verbose", "build", "-v")), 2); assert_eq!(get_verbose_level(vec!("mdp", "-v", "build", "--verbose")), 2); } #[test] fn build_subcommand() { let out = args::get_matches_for(vec!("mdp", "build")); assert!(out.is_ok()); assert_eq!(out.unwrap().subcommand_name().unwrap(), "build"); } #[test] fn version_string() { let out = args::get_matches_for(vec!("mdp", "--version")); assert!(out.is_err()); assert_eq!(out.unwrap_err().kind, ErrorKind::VersionDisplayed); let out = args::get_matches_for(vec!("mdp", "build", "--version")); assert!(out.is_err()); assert_eq!(out.unwrap_err().kind, ErrorKind::UnknownArgument); }