Example #1
0
 /**
  * @param EventInterface $event
  * @covers Libevent\Event\Event::remove
  * @depends testEventInit
  */
 public function testEventDisableAndArgumentLinked(EventInterface $event)
 {
     $base = $event->getBase();
     $event = new Event($base, 'test_event_enable');
     $this->assertFalse($event->enable());
     // Test non persist
     $event->prepare(SIGUSR2, EV_SIGNAL, array($this, 'eventHandlerInnerCallback'), array('test_argument' => new \stdClass()));
     $this->assertCount(1, $base->getDisabledEvenets());
     $this->assertTrue($base->isEventDisabled('test_event_enable'));
     $this->assertTrue($event->enable());
     $this->assertFalse($base->isEventDisabled('test_event_enable'));
     $this->assertCount(0, $base->getDisabledEvenets());
     posix_kill(posix_getpid(), SIGUSR2);
     $base->loop(EVLOOP_NONBLOCK);
     $this->assertArrayHasKey('test_argument', $arguments = $event->getArguments());
     $this->assertTrue(is_object($arguments['test_argument']));
     $this->assertAttributeEquals(1, 'testParam', $arguments['test_argument']);
     $this->assertTrue($base->isEventDisabled('test_event_enable'));
     $event->enable();
     $event->free();
     $this->assertCount(0, $base->getDisabledEvenets());
     $this->assertFalse($base->exists('test_event_enable'));
     unset($base);
 }