Example #1
0
 public function test_subscribe_and_unsubscribe()
 {
     $eventer = new Eventer();
     $eventer->subscribe('foo', 'foo');
     $subscription = $eventer->subscribe('foo', 'bar');
     $eventer->subscribe('foo', 'baz');
     $this->assertTrue($subscription instanceof IEventSubscription);
     $this->assertEquals(3, count($eventer->getSubscriptions()));
     $this->assertEquals('foo', $eventer->getSubscriptions()[0]->getSubscriber());
     $this->assertEquals('bar', $eventer->getSubscriptions()[1]->getSubscriber());
     $this->assertEquals('baz', $eventer->getSubscriptions()[2]->getSubscriber());
     $this->assertTrue($eventer->getSubscriptions()[0]->getId() != $eventer->getSubscriptions()[1]->getId());
     $this->assertTrue($eventer->getSubscriptions()[0]->getId() != $eventer->getSubscriptions()[2]->getId());
     $this->assertTrue($eventer->getSubscriptions()[1]->getId() != $eventer->getSubscriptions()[2]->getId());
     $eventer->unsubscribe($subscription);
     $this->assertEquals(3, count($eventer->getSubscriptions()));
     $this->assertNull($eventer->getSubscriptions()[1]);
 }