function testPrototypeExtension() { $user = new Mock\User(); $customer = new Mock\Customer(); $c = 0; Mock\User::isAllowed(function () use(&$c) { $c++; }); prototypr\Manager::extend($customer, $user); $customer->isAllowed(); $this->assertEquals(1, $c); }
public function testEventNamespacedUnbind() { $user = new Mock\User(); $c = 0; $user->attach('click', function ($sender, $e) use(&$c) { $c++; }); $user->attach('click.myNamespace', function ($sender, $e) use(&$c) { $c++; }); $user->detach('click.myNamespace'); $user->setState('click'); $this->assertEquals(1, $c); }
function testObjectCallEvent() { $user = new Mock\User(); $c = 0; $user->magery('call', 'isAllowed', function () use(&$c) { $c++; return true; }); $result = $user->isAllowed(); $this->assertEquals($result, true); $this->assertEquals(1, $c); }