use mockiato::mockable;
#[mockable]
trait Greeter {
fn greet(&self, names: &[&str]) -> String;
fn greet_with_mut_names<'a>(&'a self, names: &'a mut [&'a str]) -> String;
}
#[test]
fn unordered_slice_matcher_works() {
let mut greeter = GreeterMock::new();
greeter
.expect_greet(|arg| arg.unordered_vec_eq(vec!["Tom", "Peter", "Hans"]))
.returns(String::from("Hello everyone"));
greeter
.expect_greet_with_mut_names(|arg| arg.unordered_vec_eq(vec!["Heidi", "Jerry"]))
.returns(String::from("Hello 👋"));
assert_eq!("Hello everyone", greeter.greet(&["Peter", "Hans", "Tom"]));
assert_eq!(
"Hello 👋",
greeter.greet_with_mut_names(&mut ["Jerry", "Heidi"])
);
}