public function testCanDetachObservers() { $event_store = new EventStore(new EventStoreConfig()); $observer = new TestEventListener(); $detached_observer = new TestEventListener(); $identifier = new Identifier('Unit-Test-ID'); $event = new UnitTestEvent($identifier, 'Unit-Test'); $event_store->attachEventListener($observer); $event_store->attachEventListener($detached_observer); $collection = new EventEnvelopeCollection(); $collection[] = new EventEnvelope($event, []); /** @var EventEnvelopeCollection $collection */ $event_store->commitEvents($collection); $event_store->detachEventListener($detached_observer); /** @var EventEnvelopeCollection $collection */ $event_store->commitEvents($collection); $this->expectOutputString(UnitTestEvent::class . " with ID Unit-Test-ID was committed.\n" . UnitTestEvent::class . " with ID Unit-Test-ID was committed.\n" . UnitTestEvent::class . " with ID Unit-Test-ID was committed.\n"); }