/**
* @covers FOF30\Event\Dispatcher::detach
*/
public function testDetach()
{
ReflectionHelper::setValue($this->object, 'observers', array());
ReflectionHelper::setValue($this->object, 'events', array());
$observer1 = new FirstObserver($this->object);
$observer2 = new SecondObserver($this->object);
$observers = ReflectionHelper::getValue($this->object, 'observers');
$this->assertCount(2, $observers);
// Detaching an observer
$this->object->detach($observer1);
$observers = ReflectionHelper::getValue($this->object, 'observers');
$this->assertCount(1, $observers);
// Detaching the same observer
$this->object->detach($observer1);
$observers = ReflectionHelper::getValue($this->object, 'observers');
$this->assertCount(1, $observers);
// Detaching another observer
$this->object->detach($observer2);
$observers = ReflectionHelper::getValue($this->object, 'observers');
$this->assertCount(0, $observers);
}