public void Setup()
        {
            IEventStore eventStore    = new TestInMemoryEventStore();
            var         eventpubliser = new TestEventPublisher();

            _snapshotStore = new TestInMemorySnapshotStore();
            _rep           = new Repository <TestSnapshotAggreagate>(eventStore, _snapshotStore, eventpubliser);
            var aggregate = new TestSnapshotAggreagate();

            for (int i = 0; i < 20; i++)
            {
                aggregate.DoSomething();
                _rep.Save(aggregate, i);
            }
        }
예제 #2
0
        public When_saving_a_snapshotable_aggregate_for_each_change()
        {
            IEventStore eventStore = new TestInMemoryEventStore();

            _snapshotStore = new TestInMemorySnapshotStore();
            var snapshotStrategy = new DefaultSnapshotStrategy();
            var repository       = new SnapshotRepository(_snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore);

            _session   = new Session(repository);
            _aggregate = new TestSnapshotAggregate();

            for (var i = 0; i < 150; i++)
            {
                _session.Add(_aggregate);
                _aggregate.DoSomething();
                _session.Commit();
            }
        }
예제 #3
0
        public SaveSnapshotableAggregateForEachChange()
        {
            IEventStore eventStore = new TestInMemoryEventStore();

            _snapshotStore = new TestInMemorySnapshotStore();
            var snapshotStrategy = new DefaultSnapshotStrategy(_snapshotStore);
            var repository       = new SnapshotRepository(_snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore);

            _session   = new Session(repository);
            _aggregate = new TestSnapshotAggregate();

            for (var i = 0; i < 150; i++)
            {
                _session.Add(_aggregate);
                _aggregate.DoSomething();
                _session.CommitAsync().Wait();
            }
        }
예제 #4
0
        public void Setup()
        {
            IEventStore eventStore     = new TestInMemoryEventStore();
            var         eventPublisher = new TestEventPublisher();

            _snapshotStore = new TestInMemorySnapshotStore();
            var snapshotStrategy = new DefaultSnapshotStrategy();
            var repository       = new SnapshotRepository(_snapshotStore, snapshotStrategy, new Repository(eventStore, eventPublisher), eventStore);

            _session   = new Session(repository);
            _aggregate = new TestSnapshotAggregate();

            for (var i = 0; i < 20; i++)
            {
                _session.Add(_aggregate);
                _aggregate.DoSomething();
                _session.Commit();
            }
        }
        public void Setup()
        {
            IEventStore <ISingleSignOnToken> eventStore = new TestInMemoryEventStore();
            var eventPublisher = new TestEventPublisher();

            _snapshotStore = new TestInMemorySnapshotStore();
            var snapshotStrategy = new DefaultSnapshotStrategy <ISingleSignOnToken>();
            var aggregateFactory = new AggregateFactory(new TestDependencyResolver());
            var repository       = new SnapshotRepository <ISingleSignOnToken>(_snapshotStore, snapshotStrategy, new Repository <ISingleSignOnToken>(aggregateFactory, eventStore, eventPublisher, new NullCorrelationIdHelper()), eventStore, aggregateFactory);

            _unitOfWork = new UnitOfWork <ISingleSignOnToken>(repository);
            _aggregate  = new TestSnapshotAggregate();

            for (var i = 0; i < 20; i++)
            {
                _unitOfWork.Add(_aggregate);
                _aggregate.DoSomething();
                _unitOfWork.Commit();
            }
        }
        public When_saving_a_snapshotable_aggregate_with_custom_interval()
        {
            IEventStore eventStore = new TestInMemoryEventStore();

            _snapshotStore = new TestInMemorySnapshotStore();
            var snapshotStrategy = new DefaultSnapshotStrategy(23);
            var repository       = new SnapshotRepository(_snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore);

            _session   = new Session(repository);
            _aggregate = new TestSnapshotAggregate(Guid.NewGuid());

            Task.Run(async() =>
            {
                for (var i = 0; i < 50; i++)
                {
                    await _session.Add(_aggregate);
                    _aggregate.DoSomething();
                    await _session.Commit();
                }
            }).Wait();
        }