public function testReadEvents() { $eventStore = Yii::$app->eventStore; $events = []; for ($i = 0; $i < 5; $i++) { $events[] = new DomainEvent(['modelId' => 1, 'modelType' => 'Cat', 'payload' => new ModelEvent(['name' => 'beforeCat'])]); } $eventStore->appendEvents(new DomainEventStream($events)); $events = []; for ($i = 0; $i < 5; $i++) { $events[] = new DomainEvent(['modelId' => 1, 'modelType' => 'Cat', 'payload' => new ModelEvent(['name' => 'beforeCat'])]); } $eventStore->appendEvents(new DomainEventStream($events)); $events = []; for ($i = 0; $i < 5; $i++) { $events[] = new DomainEvent(['modelId' => 2, 'modelType' => 'Dog', 'payload' => new ModelEvent(['name' => 'beforeDog'])]); } $eventStore->appendEvents(new DomainEventStream($events)); $catEvents = $eventStore->readEvents('Cat', 1); expect(count($catEvents))->equals(10); foreach ($catEvents as $event) { expect($event->name)->equals('beforeCat'); } expect(EventRecord::find()->select('revision')->where(['model_type' => 'Cat'])->orderBy(['revision' => SORT_ASC])->distinct()->column())->equals([1, 2]); $dogEvents = $eventStore->readEvents('Dog', 2); expect(count($dogEvents))->equals(5); foreach ($dogEvents as $event) { expect($event->name)->equals('beforeDog'); } }
public function testCreate() { $model = new StandAloneModel(); $model->trigger(StandAloneModel::EVENT_PROP1, new StandAloneEvent(['value' => 'v1'])); expect($model->prop1)->equals('v1'); $count0 = EventRecord::find()->count(); $model->save(false); $count1 = EventRecord::find()->count(); expect($count1)->equals($count0 + 1); return $model; }