public function testRemovePlugin() { $this->_adapter->addPlugin($this->_plugin); $this->_adapter->removePlugin($this->_plugin); // no events should be attached $this->assertEquals(0, count($this->_adapter->events()->getEvents())); }
protected function checkPreEventCanChangeArguments($method, array $args, array $expectedArgs) { $internalMethod = 'internal' . ucfirst($method); $eventName = $method . '.pre'; // init mock $this->_storage = $this->getMockForAbstractAdapter(array($internalMethod)); $this->_storage->events()->attach($eventName, function ($event) use ($expectedArgs) { $params = $event->getParams(); foreach ($expectedArgs as $k => $v) { $params[$k] = $v; } }); // set expected arguments of internal method call $tmp = $this->_storage->expects($this->once())->method($internalMethod); $equals = array(); foreach ($expectedArgs as $v) { $equals[] = $this->equalTo($v); } call_user_func_array(array($tmp, 'with'), $equals); // run call_user_func_array(array($this->_storage, $method), $args); }