/** * Unsets the value at the specified index * * @link http://www.php.net/manual/en/arrayaccess.offsetunset.php ArrayAccess::offsetUnset() * * @param mixed $index * The index being unset. */ public function offsetUnset($index) { // Does index exist? if (ArrayObject::offsetExists($index)) { // Deregister object $this->_Mediator->remSubscriber(ArrayObject::offsetGet($index)); // Unset object ArrayObject::offsetUnset($index); } }
/** * @depends test_isRegistered * @covers ::remSubscriber */ public function test_remSubscriber() { # Test normal subscriber $EventSubscriber = new MockEventSubscriber(); $this->Mediator->addSubscriber($EventSubscriber); $this->Mediator->remSubscriber($EventSubscriber); $this->assertFalse($this->Mediator->isRegistered('pre.foo'), 'Event name pre.foo should have no subscribers'); $this->assertFalse($this->Mediator->isRegistered('post.foo'), 'Event name post.foo should have no subscribers'); # Test subscriber with priorities $EventSubscriber = new MockEventSubscriberWithPriorities(); $this->Mediator->addSubscriber($EventSubscriber); $this->Mediator->remSubscriber($EventSubscriber); $this->assertFalse($this->Mediator->isRegistered('pre.foo'), 'Event name pre.foo should have no subscribers'); # Test subscriber with multiple callbacks $EventSubscriber = new MockEventSubscriberWithMultipleCallbacks(); $this->Mediator->addSubscriber($EventSubscriber); $this->Mediator->remSubscriber($EventSubscriber); $this->assertFalse($this->Mediator->isRegistered('pre.foo'), 'Event name pre.foo should have no subscribers'); }