blob: 826d711ec317f9be9fc59adda3b026e2ca9dd124 [file] [log] [blame]
// vim: tw=80
//! A method that returns ownership of a value, rather than returning by Copy
#![deny(warnings)]
use mockall::*;
struct NonCopy {}
#[automock]
trait T {
fn foo(&self) -> NonCopy;
}
#[test]
fn return_once() {
let mut mock = MockT::new();
let r = NonCopy{};
mock.expect_foo()
.return_once(|| r);
mock.foo();
}
#[test]
#[should_panic(expected = "MockT::foo: Expectation(<anything>) called twice, but it returns by move")]
fn return_once_too_many_times() {
let mut mock = MockT::new();
let r = NonCopy{};
mock.expect_foo()
.return_once(|| r);
mock.foo();
mock.foo();
}