public async Task MixedEventsInFeed_QuerryRepo() { var mock = new Mock <IEventFeed <QueryEventHandler <TestQ, TestEv> > >(); IEnumerable <SubscribedDomainEventWrapper> list = new [] { new SubscribedDomainEventWrapper { DomainEvent = new TestEv(Guid.NewGuid()) }, new SubscribedDomainEventWrapper { DomainEvent = new TestEv2(Guid.NewGuid()) } }; mock.Setup(feed => feed.GetEventsAsync(It.IsAny <long>())).ReturnsAsync(list); var versionRepo = new Mock <IVersionRepository>(); versionRepo.Setup(repo => repo.SaveVersion(It.IsAny <LastProcessedVersion>())).Returns(Task.CompletedTask); versionRepo.Setup(repo => repo.GetVersionAsync(It.IsAny <string>())).ReturnsAsync(0); var queryRepository = new ReadModelRepositoryMongoDb(EventMongoDb); var eventDelegateHandler = new QueryEventHandler <TestQ, TestEv>(queryRepository, versionRepo.Object, mock.Object); await eventDelegateHandler.UpdateAsync(); var result = await queryRepository.LoadAsync <TestQ>(); Assert.AreEqual(1, result.Value.WasCalled); }
private async Task Raise(QueryEventHandler Callback, QueryEventArgs e) { if (!this.isAborted && !this.isDone && Callback != null) { try { await Callback(this, e); } catch (Exception ex) { Log.Critical(ex); } } }