public function testCreateFromDomainEvent() { $event = new SomePayload(); $message = new GenericDomainEventMessage('SomeAggregate', 1234, 5, $event); $this->assertEquals('SomeAggregate', $message->getAggregateType()); $this->assertEquals(1234, $message->getAggregateId()); $this->assertEquals(5, $message->getSequenceNumber()); $this->assertSame($event, $message->getPayload()); }
/** * @param DomainEventMessageInterface $domainEventMessage * @return DomainEventMessageInterface * @throws InvalidArgumentException */ public function addEventMessage(DomainEventMessageInterface $domainEventMessage) { if ($domainEventMessage->getAggregateType() !== $this->aggregateType) { throw new InvalidArgumentException(sprintf('Trying to add an event message of aggregate %s to the event container of aggregate %s', $domainEventMessage->getAggregateType(), $this->aggregateType)); } if ($domainEventMessage->getAggregateId() === null) { $domainEventMessage = new GenericDomainEventMessage($domainEventMessage->getAggregateType(), $this->aggregateId, $domainEventMessage->getSequenceNumber(), $domainEventMessage->getPayload(), $domainEventMessage->getMetadata(), $domainEventMessage->getId(), $domainEventMessage->getTimestamp()); } $this->lastSequenceNumber = $domainEventMessage->getSequenceNumber(); $this->events[] = $domainEventMessage; return $domainEventMessage; }