Beispiel #1
0
 /**
  * @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;
 }
 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());
 }