Skip to content

Commit d05ed15

Browse files
committed
tests: adds tests for comma separated values
1 parent e69da6a commit d05ed15

File tree

2 files changed

+226
-86
lines changed

2 files changed

+226
-86
lines changed

tests/multiple_values.rs

+140-14
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ fn multiple_values_of_option_long() {
2222

2323
assert!(m.is_present("option"));
2424
assert_eq!(m.occurrences_of("option"), 3);
25-
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3"]);
25+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
2626
}
2727

2828
#[test]
@@ -45,7 +45,7 @@ fn multiple_values_of_option_short() {
4545

4646
assert!(m.is_present("option"));
4747
assert_eq!(m.occurrences_of("option"), 3);
48-
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3"]);
48+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
4949
}
5050

5151
#[test]
@@ -70,7 +70,7 @@ fn multiple_values_of_option_mixed() {
7070

7171
assert!(m.is_present("option"));
7272
assert_eq!(m.occurrences_of("option"), 4);
73-
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3", "val4"]);
73+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3", "val4"]);
7474
}
7575

7676
#[test]
@@ -94,7 +94,7 @@ fn multiple_values_of_option_exact_exact() {
9494

9595
assert!(m.is_present("option"));
9696
assert_eq!(m.occurrences_of("option"), 3);
97-
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3"]);
97+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
9898
}
9999

100100
#[test]
@@ -158,7 +158,7 @@ fn multiple_values_of_option_min_exact() {
158158

159159
assert!(m.is_present("option"));
160160
assert_eq!(m.occurrences_of("option"), 3);
161-
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3"]);
161+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
162162
}
163163

164164
#[test]
@@ -202,7 +202,7 @@ fn multiple_values_of_option_min_more() {
202202

203203
assert!(m.is_present("option"));
204204
assert_eq!(m.occurrences_of("option"), 4);
205-
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3", "val4"]);
205+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3", "val4"]);
206206
}
207207

208208
#[test]
@@ -226,7 +226,7 @@ fn multiple_values_of_option_max_exact() {
226226

227227
assert!(m.is_present("option"));
228228
assert_eq!(m.occurrences_of("option"), 3);
229-
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3"]);
229+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
230230
}
231231

232232
#[test]
@@ -249,7 +249,7 @@ fn multiple_values_of_option_max_less() {
249249

250250
assert!(m.is_present("option"));
251251
assert_eq!(m.occurrences_of("option"), 2);
252-
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), vec!["val1", "val2"]);
252+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2"]);
253253
}
254254

255255
#[test]
@@ -286,7 +286,7 @@ fn multiple_values_of_positional() {
286286

287287
assert!(m.is_present("pos"));
288288
assert_eq!(m.occurrences_of("pos"), 3);
289-
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3"]);
289+
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
290290
}
291291

292292
#[test]
@@ -302,7 +302,7 @@ fn multiple_values_of_positional_exact_exact() {
302302

303303
assert!(m.is_present("pos"));
304304
assert_eq!(m.occurrences_of("pos"), 3);
305-
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3"]);
305+
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
306306
}
307307

308308
#[test]
@@ -342,7 +342,7 @@ fn multiple_values_of_positional_min_exact() {
342342

343343
assert!(m.is_present("pos"));
344344
assert_eq!(m.occurrences_of("pos"), 3);
345-
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3"]);
345+
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
346346
}
347347

348348
#[test]
@@ -370,7 +370,7 @@ fn multiple_values_of_positional_min_more() {
370370

371371
assert!(m.is_present("pos"));
372372
assert_eq!(m.occurrences_of("pos"), 4);
373-
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3", "val4"]);
373+
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3", "val4"]);
374374
}
375375

376376
#[test]
@@ -386,7 +386,7 @@ fn multiple_values_of_positional_max_exact() {
386386

387387
assert!(m.is_present("pos"));
388388
assert_eq!(m.occurrences_of("pos"), 3);
389-
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), vec!["val1", "val2", "val3"]);
389+
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
390390
}
391391

392392
#[test]
@@ -402,7 +402,7 @@ fn multiple_values_of_positional_max_less() {
402402

403403
assert!(m.is_present("pos"));
404404
assert_eq!(m.occurrences_of("pos"), 2);
405-
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), vec!["val1", "val2"]);
405+
assert_eq!(m.values_of("pos").unwrap().collect::<Vec<_>>(), ["val1", "val2"]);
406406
}
407407

408408
#[test]
@@ -416,3 +416,129 @@ fn multiple_values_of_positional_max_more() {
416416
assert!(m.is_err());
417417
assert_eq!(m.unwrap_err().kind, ErrorKind::TooManyValues);
418418
}
419+
420+
#[test]
421+
fn multiple_values_sep_long_equals() {
422+
let m = App::new("multiple_values")
423+
.arg(Arg::with_name("option")
424+
.long("option")
425+
.help("multiple options")
426+
.takes_value(true)
427+
.multiple(true))
428+
.get_matches_from_safe(vec![
429+
"",
430+
"--option=val1,val2,val3",
431+
]);
432+
433+
assert!(m.is_ok());
434+
let m = m.unwrap();
435+
436+
assert!(m.is_present("option"));
437+
assert_eq!(m.occurrences_of("option"), 1);
438+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
439+
}
440+
441+
#[test]
442+
fn multiple_values_sep_long_space() {
443+
let m = App::new("multiple_values")
444+
.arg(Arg::with_name("option")
445+
.long("option")
446+
.help("multiple options")
447+
.takes_value(true)
448+
.multiple(true))
449+
.get_matches_from_safe(vec![
450+
"",
451+
"--option",
452+
"val1,val2,val3",
453+
]);
454+
455+
assert!(m.is_ok());
456+
let m = m.unwrap();
457+
458+
assert!(m.is_present("option"));
459+
assert_eq!(m.occurrences_of("option"), 1);
460+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
461+
}
462+
463+
#[test]
464+
fn multiple_values_sep_short_equals() {
465+
let m = App::new("multiple_values")
466+
.arg(Arg::with_name("option")
467+
.short("o")
468+
.help("multiple options")
469+
.takes_value(true)
470+
.multiple(true))
471+
.get_matches_from_safe(vec![
472+
"",
473+
"-o=val1,val2,val3",
474+
]);
475+
476+
assert!(m.is_ok());
477+
let m = m.unwrap();
478+
479+
assert!(m.is_present("option"));
480+
assert_eq!(m.occurrences_of("option"), 1);
481+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
482+
}
483+
484+
#[test]
485+
fn multiple_values_sep_short_space() {
486+
let m = App::new("multiple_values")
487+
.arg(Arg::with_name("option")
488+
.short("o")
489+
.help("multiple options")
490+
.takes_value(true)
491+
.multiple(true))
492+
.get_matches_from_safe(vec![
493+
"",
494+
"-o",
495+
"val1,val2,val3",
496+
]);
497+
498+
assert!(m.is_ok());
499+
let m = m.unwrap();
500+
501+
assert!(m.is_present("option"));
502+
assert_eq!(m.occurrences_of("option"), 1);
503+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
504+
}
505+
506+
#[test]
507+
fn multiple_values_sep_short_no_space() {
508+
let m = App::new("multiple_values")
509+
.arg(Arg::with_name("option")
510+
.short("o")
511+
.help("multiple options")
512+
.takes_value(true)
513+
.multiple(true))
514+
.get_matches_from_safe(vec![
515+
"",
516+
"-oval1,val2,val3",
517+
]);
518+
519+
assert!(m.is_ok());
520+
let m = m.unwrap();
521+
522+
assert!(m.is_present("option"));
523+
assert_eq!(m.occurrences_of("option"), 1);
524+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
525+
}
526+
527+
#[test]
528+
fn multiple_values_sep_positional() {
529+
let m = App::new("multiple_values")
530+
.arg(Arg::with_name("option")
531+
.help("multiple options")
532+
.multiple(true))
533+
.get_matches_from_safe(vec![
534+
"",
535+
"val1,val2,val3",
536+
]);
537+
538+
assert!(m.is_ok());
539+
let m = m.unwrap();
540+
541+
assert!(m.is_present("option"));
542+
assert_eq!(m.occurrences_of("option"), 1);
543+
assert_eq!(m.values_of("option").unwrap().collect::<Vec<_>>(), ["val1", "val2", "val3"]);
544+
}

0 commit comments

Comments
 (0)