• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use clap::{Arg, ArgAction, Command};
2 
3 #[test]
opt_default_no_delim()4 fn opt_default_no_delim() {
5     let m = Command::new("no_delim")
6         .arg(Arg::new("option").long("option").action(ArgAction::Set))
7         .try_get_matches_from(vec!["", "--option", "val1,val2,val3"]);
8 
9     assert!(m.is_ok(), "{}", m.unwrap_err());
10     let m = m.unwrap();
11 
12     assert!(m.contains_id("option"));
13     assert_eq!(
14         m.get_one::<String>("option").map(|v| v.as_str()).unwrap(),
15         "val1,val2,val3"
16     );
17 }
18 
19 #[test]
opt_eq_no_delim()20 fn opt_eq_no_delim() {
21     let m = Command::new("no_delim")
22         .arg(Arg::new("option").long("option").action(ArgAction::Set))
23         .try_get_matches_from(vec!["", "--option=val1,val2,val3"]);
24 
25     assert!(m.is_ok(), "{}", m.unwrap_err());
26     let m = m.unwrap();
27 
28     assert!(m.contains_id("option"));
29     assert_eq!(
30         m.get_one::<String>("option").map(|v| v.as_str()).unwrap(),
31         "val1,val2,val3"
32     );
33 }
34 
35 #[test]
opt_s_eq_no_delim()36 fn opt_s_eq_no_delim() {
37     let m = Command::new("no_delim")
38         .arg(Arg::new("option").short('o').action(ArgAction::Set))
39         .try_get_matches_from(vec!["", "-o=val1,val2,val3"]);
40 
41     assert!(m.is_ok(), "{:?}", m.unwrap_err());
42     let m = m.unwrap();
43 
44     assert!(m.contains_id("option"));
45     assert_eq!(
46         m.get_one::<String>("option").map(|v| v.as_str()).unwrap(),
47         "val1,val2,val3"
48     );
49 }
50 
51 #[test]
opt_s_default_no_delim()52 fn opt_s_default_no_delim() {
53     let m = Command::new("no_delim")
54         .arg(Arg::new("option").short('o').action(ArgAction::Set))
55         .try_get_matches_from(vec!["", "-o", "val1,val2,val3"]);
56 
57     assert!(m.is_ok(), "{:?}", m.unwrap_err());
58     let m = m.unwrap();
59 
60     assert!(m.contains_id("option"));
61     assert_eq!(
62         m.get_one::<String>("option").map(|v| v.as_str()).unwrap(),
63         "val1,val2,val3"
64     );
65 }
66 
67 #[test]
opt_s_no_space_no_delim()68 fn opt_s_no_space_no_delim() {
69     let m = Command::new("no_delim")
70         .arg(Arg::new("option").short('o').action(ArgAction::Set))
71         .try_get_matches_from(vec!["", "-o", "val1,val2,val3"]);
72 
73     assert!(m.is_ok(), "{}", m.unwrap_err());
74     let m = m.unwrap();
75 
76     assert!(m.contains_id("option"));
77     assert_eq!(
78         m.get_one::<String>("option").map(|v| v.as_str()).unwrap(),
79         "val1,val2,val3"
80     );
81 }
82 
83 #[test]
opt_s_no_space_mult_no_delim()84 fn opt_s_no_space_mult_no_delim() {
85     let m = Command::new("no_delim")
86         .arg(
87             Arg::new("option")
88                 .short('o')
89                 .action(ArgAction::Set)
90                 .num_args(1..),
91         )
92         .try_get_matches_from(vec!["", "-o", "val1,val2,val3"]);
93 
94     assert!(m.is_ok(), "{}", m.unwrap_err());
95     let m = m.unwrap();
96 
97     assert!(m.contains_id("option"));
98     assert_eq!(
99         m.get_one::<String>("option").map(|v| v.as_str()).unwrap(),
100         "val1,val2,val3"
101     );
102 }
103 
104 #[test]
opt_eq_mult_def_delim()105 fn opt_eq_mult_def_delim() {
106     let m = Command::new("no_delim")
107         .arg(
108             Arg::new("option")
109                 .long("opt")
110                 .action(ArgAction::Set)
111                 .num_args(1..)
112                 .value_delimiter(','),
113         )
114         .try_get_matches_from(vec!["", "--opt=val1,val2,val3"]);
115 
116     assert!(m.is_ok(), "{}", m.unwrap_err());
117     let m = m.unwrap();
118 
119     assert!(m.contains_id("option"));
120     assert_eq!(
121         m.get_many::<String>("option")
122             .unwrap()
123             .map(|v| v.as_str())
124             .collect::<Vec<_>>(),
125         ["val1", "val2", "val3"]
126     );
127 }
128