/**
* @covers FOF30\Event\Dispatcher::trigger
*/
public function testTrigger()
{
ReflectionHelper::setValue($this->object, 'observers', array());
ReflectionHelper::setValue($this->object, 'events', array());
$observer1 = new FirstObserver($this->object);
$observer2 = new SecondObserver($this->object);
// Trigger a non-existent event
$result = $this->object->trigger('notthere');
$this->assertEquals(array(), $result);
// Trigger a non-existent event with data
$result = $this->object->trigger('notthere', array('whatever', 'nevermind'));
$this->assertEquals(array(), $result);
// Trigger an event with one observer responding to it
$result = $this->object->trigger('onlySecond');
$this->assertEquals(array('only second'), $result);
// Trigger an event with two observers responding to it
$result = $this->object->trigger('identifyYourself');
$this->assertEquals(array('one', 'two'), $result);
// Trigger an event with two observers responding to it, with parameters
$result = $this->object->trigger('returnConditional', array('one'));
$this->assertEquals(array(true, false), $result);
// Trigger an event with two observers responding to it, with parameters
$result = $this->object->trigger('returnConditional', array('two'));
$this->assertEquals(array(false, true), $result);
}