public void SetUp() { streamId = Guid.NewGuid().ToString(); store = TestEventStore.Create(); store.Populate(streamId); stream = NEventStoreStream.ByAggregate(store, streamId); }
public void SetUp() { // populate the event store store = TestEventStore.Create(); streamId = Guid.NewGuid().ToString(); store.WriteEvents(streamId); stream = NEventStoreStream.ByAggregate(store, streamId).DomainEvents(); }
public async Task A_partitioned_stream_can_be_mapped_at_query_time() { for (var i = 1; i <= 9; i++) { store.WriteEvents( streamId: Guid.NewGuid().ToString(), howMany: 10, bucketId: i.ToString()); } var partitionedStream = Stream.Partitioned <EventMessage, int, string>(async(q, p) => { var bucketId = ((IStreamQueryValuePartition <string>)p).Value; var streamsToSnapshot = store.Advanced.GetStreamsToSnapshot(bucketId, 0); var streamId = streamsToSnapshot.Select(s => s.StreamId).Single(); var stream = NEventStoreStream.ByAggregate(store, streamId, bucketId); var batch = await stream.CreateQuery(q.Cursor, q.BatchSize).NextBatch(); return(batch); }).Trace(); var domainEvents = partitionedStream.Map(es => es.Select(e => e.Body).OfType <IDomainEvent>()); // catch up var catchup = domainEvents.DistributeAmong(Enumerable.Range(1, 10) .Select(i => Partition.ByValue(i.ToString())), batchSize: 2); var receivedEvents = new ConcurrentBag <IDomainEvent>(); catchup.Subscribe(async b => { foreach (var e in b) { receivedEvents.Add(e); } }); await catchup.RunUntilCaughtUp().Timeout(); receivedEvents.Count().Should().Be(90); }
public IStream <IDomainEvent, int> Open(string streamId) { return(NEventStoreStream.ByAggregate(store, streamId).DomainEvents()); }