CQRS.Tests.CQRS.EventSourcing.EventStoreTests.DeleteEventsDeletesTheEventsForOnlyTheSpecifiedAggregate C# (CSharp) Метод

DeleteEventsDeletesTheEventsForOnlyTheSpecifiedAggregate() приватный Метод

private DeleteEventsDeletesTheEventsForOnlyTheSpecifiedAggregate ( ) : void
Результат void
        public void DeleteEventsDeletesTheEventsForOnlyTheSpecifiedAggregate()
        {            
            var aggregatesWithEvents = 1.Through(10).ToDictionary(i => i,
                                                                  i =>
                                                                  {
                                                                      var aggregateId = Guid.NewGuid();
                                                                      return 1.Through(10).Select(j => new SomeEvent(aggregateId, j)).ToList();
                                                                  });

            using (var eventStore = CreateEventStore())
            {                
                eventStore.SaveEvents(aggregatesWithEvents.SelectMany(x => x.Value));
                var toRemove = aggregatesWithEvents[2][0].AggregateRootId;
                aggregatesWithEvents.Remove(2);

                eventStore.DeleteEvents(toRemove);

                foreach (var kvp in aggregatesWithEvents)
                {
                    var stream = eventStore.GetAggregateHistory(kvp.Value[0].AggregateRootId);
                    stream.Should().HaveCount(10);
                }
                eventStore.GetAggregateHistory(toRemove).Should().BeEmpty();
            }
        }