diff options
Diffstat (limited to 'structopt/tests/non_literal_attributes.rs')
-rw-r--r-- | structopt/tests/non_literal_attributes.rs | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/structopt/tests/non_literal_attributes.rs b/structopt/tests/non_literal_attributes.rs deleted file mode 100644 index 75b6b71..0000000 --- a/structopt/tests/non_literal_attributes.rs +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright 2018 Guillaume Pinot (@TeXitoi) <texitoi@texitoi.eu> -// -// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or -// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license -// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -use structopt::clap::AppSettings; -use structopt::StructOpt; - -pub const DISPLAY_ORDER: usize = 2; - -// Check if the global settings compile -#[derive(StructOpt, Debug, PartialEq, Eq)] -#[structopt(global_settings = &[AppSettings::ColoredHelp])] -struct Opt { - #[structopt( - long = "x", - display_order = DISPLAY_ORDER, - next_line_help = true, - default_value = "0", - require_equals = true - )] - x: i32, - - #[structopt(short = "l", long = "level", aliases = &["set-level", "lvl"])] - level: String, - - #[structopt(long("values"))] - values: Vec<i32>, - - #[structopt(name = "FILE", requires_if("FILE", "values"))] - files: Vec<String>, -} - -#[test] -fn test_slice() { - assert_eq!( - Opt { - x: 0, - level: "1".to_string(), - files: Vec::new(), - values: vec![], - }, - Opt::from_clap(&Opt::clap().get_matches_from(&["test", "-l", "1"])) - ); - assert_eq!( - Opt { - x: 0, - level: "1".to_string(), - files: Vec::new(), - values: vec![], - }, - Opt::from_clap(&Opt::clap().get_matches_from(&["test", "--level", "1"])) - ); - assert_eq!( - Opt { - x: 0, - level: "1".to_string(), - files: Vec::new(), - values: vec![], - }, - Opt::from_clap(&Opt::clap().get_matches_from(&["test", "--set-level", "1"])) - ); - assert_eq!( - Opt { - x: 0, - level: "1".to_string(), - files: Vec::new(), - values: vec![], - }, - Opt::from_clap(&Opt::clap().get_matches_from(&["test", "--lvl", "1"])) - ); -} - -#[test] -fn test_multi_args() { - assert_eq!( - Opt { - x: 0, - level: "1".to_string(), - files: vec!["file".to_string()], - values: vec![], - }, - Opt::from_clap(&Opt::clap().get_matches_from(&["test", "-l", "1", "file"])) - ); - assert_eq!( - Opt { - x: 0, - level: "1".to_string(), - files: vec!["FILE".to_string()], - values: vec![1], - }, - Opt::from_clap( - &Opt::clap().get_matches_from(&["test", "-l", "1", "--values", "1", "--", "FILE"]), - ) - ); -} - -#[test] -fn test_multi_args_fail() { - let result = Opt::clap().get_matches_from_safe(&["test", "-l", "1", "--", "FILE"]); - assert!(result.is_err()); -} - -#[test] -fn test_bool() { - assert_eq!( - Opt { - x: 1, - level: "1".to_string(), - files: vec![], - values: vec![], - }, - Opt::from_clap(&Opt::clap().get_matches_from(&["test", "-l", "1", "--x=1"])) - ); - let result = Opt::clap().get_matches_from_safe(&["test", "-l", "1", "--x", "1"]); - assert!(result.is_err()); -} - -fn parse_hex(input: &str) -> Result<u64, std::num::ParseIntError> { - u64::from_str_radix(input, 16) -} - -#[derive(StructOpt, PartialEq, Debug)] -struct HexOpt { - #[structopt(short = "n", parse(try_from_str = parse_hex))] - number: u64, -} - -#[test] -fn test_parse_hex_function_path() { - assert_eq!( - HexOpt { number: 5 }, - HexOpt::from_clap(&HexOpt::clap().get_matches_from(&["test", "-n", "5"])) - ); - assert_eq!( - HexOpt { number: 0xabcdef }, - HexOpt::from_clap(&HexOpt::clap().get_matches_from(&["test", "-n", "abcdef"])) - ); - - let err = HexOpt::clap() - .get_matches_from_safe(&["test", "-n", "gg"]) - .unwrap_err(); - assert!(err.message.contains("invalid digit found in string"), err); -} |