blob: b5330dfae1169bbdb72857c3e461a489c8cb1964 [file] [log] [blame]
// vim: tw=80
//! A method that has both a reference and a nonreference argument
#![deny(warnings)]
use mockall::*;
mock!{
Foo {
fn foo(&self, i0: i32, i1: &u16) -> i32;
}
}
#[test]
fn with() {
let mut mock = MockFoo::new();
mock.expect_foo()
.with(predicate::eq(42), predicate::eq(1))
.returning(|x, y| x + i32::from(*y));
let x = 42i32;
let y = 1u16;
assert_eq!(43i32, mock.foo(x, &y));
}
#[test]
fn withf() {
let mut mock = MockFoo::new();
mock.expect_foo()
.withf(|x, y| *x == i32::from(*y))
.returning(|x, y| x + i32::from(*y));
let x = 42i32;
let y = 42u16;
assert_eq!(84i32, mock.foo(x, &y));
}