示例#1
0
        public async Task should_broadcast_mutations_to_processor()
        {
            long viewCounter = 0;

            var strangerStreams = new DomainBuilder()
                                  .PersistOn(() => _memory)
                                  .WithSnapshotsOn(() => new DefaultSnapshotStore(new InMemoryPersistence(new InMemoryPersistenceOptions())))
                                  .CreateAggregatesWith(() => new DefaultAggregateFactory())
                                  .BroadcastTo(Watcher)
                                  .Build();

            Task <bool> Watcher(IChunk c)
            {
                if (c.PartitionId == "views")
                {
                    viewCounter++;
                }
                return(Task.FromResult(true));
            }

            await strangerStreams.PushAsync("views", 1).ConfigureAwait(false);

            await Task.Delay(500);

            await strangerStreams.ShutdownAsync().ConfigureAwait(false);

            Assert.Equal(1, viewCounter);
        }