2021-12-13 09:28:42 -06:00
#[ cfg(debug_assertions) ]
2022-02-11 21:48:29 -06:00
use clap ::{ Arg , Command } ;
2021-10-26 23:22:35 +01:00
#[ test ]
#[ cfg(debug_assertions) ]
2022-01-04 16:10:26 -06:00
#[ should_panic = " `f` is not a name of an argument or a group. " ]
2021-10-26 23:22:35 +01:00
fn arg_matches_if_present_wrong_arg ( ) {
2022-02-11 21:48:29 -06:00
let m = Command ::new ( " test " )
2021-10-26 23:22:35 +01:00
. arg ( Arg ::new ( " flag " ) . short ( 'f' ) )
2021-12-27 12:56:12 -06:00
. try_get_matches_from ( & [ " test " , " -f " ] )
. unwrap ( ) ;
2021-10-26 23:22:35 +01:00
assert! ( m . is_present ( " flag " ) ) ;
m . is_present ( " f " ) ;
}
#[ test ]
#[ cfg(debug_assertions) ]
2022-05-24 10:16:50 -05:00
#[ should_panic = " Mismatch between definition and access of `o`. Unknown argument or group id. Make sure you are using the argument id and not the short or long flags " ]
2021-10-26 23:22:35 +01:00
fn arg_matches_value_of_wrong_arg ( ) {
2022-02-11 21:48:29 -06:00
let m = Command ::new ( " test " )
2021-10-26 23:22:35 +01:00
. arg ( Arg ::new ( " opt " ) . short ( 'o' ) . takes_value ( true ) )
2021-12-27 12:56:12 -06:00
. try_get_matches_from ( & [ " test " , " -o " , " val " ] )
. unwrap ( ) ;
2021-10-26 23:22:35 +01:00
2022-05-24 10:16:50 -05:00
assert_eq! ( m . get_one ::< String > ( " opt " ) . map ( | v | v . as_str ( ) ) , Some ( " val " ) ) ;
m . get_one ::< String > ( " o " ) . map ( | v | v . as_str ( ) ) ;
2021-10-26 23:22:35 +01:00
}
#[ test ]
#[ cfg(debug_assertions) ]
2022-01-04 16:10:26 -06:00
#[ should_panic = " `seed` is not a name of a subcommand. " ]
2021-10-26 23:22:35 +01:00
fn arg_matches_subcommand_matches_wrong_sub ( ) {
2022-02-11 21:48:29 -06:00
let m = Command ::new ( " test " )
. subcommand ( Command ::new ( " speed " ) )
2021-12-27 12:56:12 -06:00
. try_get_matches_from ( & [ " test " , " speed " ] )
. unwrap ( ) ;
2021-10-26 23:22:35 +01:00
assert! ( m . subcommand_matches ( " speed " ) . is_some ( ) ) ;
m . subcommand_matches ( " seed " ) ;
}