/** * @dataProvider addEventEntryProvider * * @param AbstractEvent $event */ public function testAddEventEntry(AbstractEvent $event) { $eventLog = EventLog::addEventEntry($event); $this->assertInstanceOf(EventLog::class, $eventLog); $this->assertNull($eventLog->getId()); if (null === $event->aggregateRoot) { $this->assertNull($eventLog->getAggregateRootId()); $this->assertNull($eventLog->getAggregateRootType()); } else { $this->assertEquals($event->aggregateRoot->getId(), $eventLog->getAggregateRootId()); $this->assertEquals(get_class($event->aggregateRoot), $eventLog->getAggregateRootType()); } $this->assertEquals($event->author, $eventLog->getAuthor()); $this->assertEquals(get_class($event), $eventLog->getEventName()); $this->assertEquals($event->date, $eventLog->getOccurredAt()); $this->assertEquals(serialize($event), $eventLog->getMetadata()); }
/** * @param AbstractEvent $event * * @return AbstractEvent */ public function logEvent(AbstractEvent $event) { $eventLog = EventLog::addEventEntry($event); return $this->repository->save($eventLog); }