public void When_cancel_existing_scheduled_future_event()
        {
            _aggregate = new TestAggregate(Guid.NewGuid());
            var testValue = "value D";

            _aggregate.ScheduleInFuture(DateTime.Now.AddSeconds(400), testValue);
            _aggregate.ScheduleInFuture(DateTime.Now.AddSeconds(400), "test value E");

            _futureEventA = _aggregate.GetEvents <FutureEventScheduledEvent>().First();
            _futureEvent_out_of_criteria = _aggregate.GetEvents <FutureEventScheduledEvent>().Skip(1).First();

            _aggregate.ClearEvents();
            _aggregate.CancelFutureEvents(testValue);
        }
        public void Only_predicate_satisfying_events_are_canceled()
        {
            var cancelEvent = _aggregate.GetEvents <FutureEventCanceledEvent>();

            Assert.True(cancelEvent.All(e => e.FutureEventId != _futureEvent_out_of_criteria.Id));
        }
 public void No_events_are_produced()
 {
     CollectionAssert.IsEmpty(_aggregate.GetEvents <DomainEvent>());
 }