From aef63bfecb7731c0307cc65eab0b9a06b8a7363d Mon Sep 17 00:00:00 2001 From: HampusM Date: Sat, 25 Mar 2023 11:58:16 +0100 Subject: feat: add argument matching --- macros/src/mock.rs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'macros/src/mock.rs') diff --git a/macros/src/mock.rs b/macros/src/mock.rs index 9aa03f4..4d040a9 100644 --- a/macros/src/mock.rs +++ b/macros/src/mock.rs @@ -226,6 +226,22 @@ fn create_mock_function( }) .collect::>(); + let typed_args = item_method + .sig + .inputs + .iter() + .filter_map(|fn_arg| match fn_arg { + FnArg::Typed(arg) => { + let Pat::Ident(pat_ident) = arg.pat.as_ref() else { + return None; + }; + + Some(pat_ident.ident.clone()) + } + FnArg::Receiver(_) => None, + }) + .collect::>(); + let expectations_field = format_ident!("{func_ident}_expectations"); ImplItemMethod { @@ -257,6 +273,8 @@ fn create_mock_function( )) .with_generic_params::<#(#type_param_idents,)*>(); + expectation.check_predicates(#(&#typed_args),*); + (expectation.get_returning())(#(#args),*) } }) -- cgit v1.2.3-18-g5258