public function testVerifyInstanceMethods() { $user = new UserModel(); double::registerObject($user); $user = new InstanceProxy($user); $user->setName('davert'); $this->specify('setName() was invoked', function () use($user) { $user->verifyInvoked('setName'); $user->verifyInvoked('setName', ['davert']); $user->verifyInvokedMultipleTimes('setName', 1); $user->verifyInvokedMultipleTimes('setName', 1, ['davert']); $user->verifyNeverInvoked('setName', ['bugoga']); }); $this->specify('save() was not invoked', function () use($user) { $user->verifyNeverInvoked('save'); $user->verifyNeverInvoked('save', ['params']); }); }
public function testVerifyInvocationClosures() { $info = array('address' => 'foo', 'email' => '*****@*****.**'); $user = new UserModel(); double::registerObject($user); $user = new InstanceProxy($user); $user->setInfo($info); $user->setInfo([]); $matcher = function ($params) use($info) { $args = $params[0][0]; // first call, first arg $empty = $params[1][0]; // second call, first arg verify($info)->equals($args); verify($empty)->isEmpty(); }; $this->specify('closure was called', function () use($user, $info, $matcher) { $user->verifyInvokedMultipleTimes('setInfo', 2, $matcher); $user->verifyInvoked('setInfo', $matcher); }); }