From dbb329344a43f13f3efc2530bbc27dc2f641569e Mon Sep 17 00:00:00 2001 From: Fabricio Dematte Date: Tue, 18 May 2021 20:53:35 -0300 Subject: [PATCH] add pre test setup function --- oof/src/lib.rs | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/oof/src/lib.rs b/oof/src/lib.rs index 2158ae2..53aed70 100644 --- a/oof/src/lib.rs +++ b/oof/src/lib.rs @@ -220,6 +220,25 @@ mod tests { args.map(OsString::from).collect() } + fn setup_args_scenario(arg_str: &str) -> Result<(Vec, Flags), OofError> { + let flags_info = [ + ArgFlag::long("output_file").short('o'), + Flag::long("verbose").short('v'), + Flag::long("help").short('h'), + ]; + + let args = gen_args(arg_str); + filter_flags(args, &flags_info) + } + + #[test] + fn test_unknown_short_flag() { + let result = setup_args_scenario("ouch a.zip -s b.tar.gz c.tar").unwrap_err(); + assert!(matches!(result, OofError::UnknownShortFlag('s'))); + let result = setup_args_scenario("ouch a.zip --foobar b.tar.gz c.tar").unwrap_err(); + // TODO: assert `UnknownLongFlag` error + } + // asdasdsa #[test] fn test_filter_flags() { @@ -239,19 +258,6 @@ mod tests { assert!(!flags.is_present("output_file")); } - #[test] - fn test_unknown_short_flag() { - let flags_info = [ - ArgFlag::long("output_file").short('o'), - Flag::long("verbose").short('v'), - Flag::long("help").short('h'), - ]; - - let args = gen_args("ouch a.zip -s b.tar.gz"); - let result = filter_flags(args, &flags_info).unwrap_err(); - assert!(matches!(result, OofError::UnknownShortFlag('s'))); - } - #[test] fn test_pop_subcommand() { let subcommands = &["commit", "add", "push", "remote"];