/** * @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); }