示例#1
0
 /**
  * Sets the value at the specified index to newval
  *
  * @link http://www.php.net/manual/en/arrayaccess.offsetset.php ArrayAccess::offsetSet()
  *
  * @param mixed $index
  *            The index being set.
  * @param mixed $newval
  *            The new value for the index.
  */
 public function offsetSet($index, $newval)
 {
     // Is object an instance of IEventSubscriber?
     if (!$newval instanceof IEventSubscriber) {
         throw new UnexpectedValueException(sprintf('Invalid value: (%s). Instance of IEventSubscriber expected', is_object($newval) ? get_class($newval) : gettype($newval)));
     }
     // Add object
     ArrayObject::offsetSet($index, $newval);
     // Register Object
     if ($this->_Mediator instanceof IMediator) {
         $this->_Mediator->addSubscriber($newval);
     }
 }
示例#2
0
 /**
  * @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');
 }