public function testDifferentEventInstancesRemainIntact() { $transaction = new TransactionEvents(); $beforeEvents = array('on.a.before' => $this->getMock('Courtyard\\Forum\\Event\\ForumEvent'), 'on.b.before' => $this->getMock('Courtyard\\Forum\\Event\\ForumEvent')); $afterEvents = array('on.a.after' => $this->getMock('Courtyard\\Forum\\Event\\ForumEvent'), 'on.b.after' => $this->getMock('Courtyard\\Forum\\Event\\ForumEvent')); foreach ($beforeEvents as $eventName => $event) { $transaction->addFirstPass($eventName, $event); } foreach ($afterEvents as $eventName => $event) { $transaction->addSecondPass($eventName, $event); } foreach ($transaction->getFirstPass() as $eventName => $event) { $this->assertSame($beforeEvents[$eventName], $event); } foreach ($transaction->getSecondPass() as $eventName => $event) { $this->assertSame($afterEvents[$eventName], $event); } }