public void Should_increment_aggregate_version_for_every_event_applied_to_an_aggregate()
        {
            var aggregate = new StubAggregateRoot();

            _eventApplicator.ApplyEvents(aggregate, new IEvent[] { new StubEvent1(), new StubEvent2() });

            aggregate.Version.ShouldBe(2);
        }
            public void Should_correctly_construct_delegates()
            {
                var aggregate = new StubAggregateRoot();

                var result = _delegateFactory.GetEventApplicationMethods(typeof(StubAggregateRoot));
                var aggregate2Delegates = result[typeof(StubAggregateRoot)];
                var @delegate           = aggregate2Delegates[typeof(StubEvent1)];

                @delegate.Invoke(aggregate, new StubEvent1());

                aggregate.Id.ShouldNotBe(default);