/** * @return EventContainer */ private function getEventContainer() { if (null === $this->eventContainer) { if (null === $this->getIdentifier()) { throw new AggregateRootIdNotInitialized("Aggregate Id unknown in [" . get_class($this) . "] Make sure the Aggregate Id is initialized before registering events."); } $this->eventContainer = new EventContainer($this->getIdentifier()); $this->eventContainer->initializeSequenceNumber($this->lastEventScn); } return $this->eventContainer; }
public function testAddEventIdAndSequenceNumberInitialized() { $id = Uuid::uuid1(); $eventContainer = new EventContainer($id); $this->assertEquals($id, $eventContainer->getAggregateIdentifier()); $eventContainer->initializeSequenceNumber(11); $this->assertEquals(0, $eventContainer->size()); $this->assertFalse($eventContainer->getEventStream()->hasNext()); $eventContainer->addEvent(MetaData::emptyInstance(), new Event()); $this->assertEquals(1, $eventContainer->size()); $domainEvent = $eventContainer->getEventList()[0]; $this->assertEquals(12, $domainEvent->getScn()); $this->assertEquals($id, $domainEvent->getAggregateIdentifier()); $this->assertTrue($eventContainer->getEventStream()->hasNext()); $eventContainer->commit(); $this->assertEquals(0, $eventContainer->size()); }