示例#1
0
 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");
 }