public void TestInitialize() { var eventstorage = new SpecDomainEventStorage(Given().ToList()); var snapshotstorage = new SpecSnapShotStorage(Snapshot); var eventpublisher = new SpecDomainEventPublisher(); var snapshotStrategy = new DefaultSnapshotStrategy(); DomainRepository = new SnapshotRepository(snapshotstorage, snapshotStrategy, new DomainRepository(eventstorage, eventpublisher), eventstorage); Session = new Session(DomainRepository); var handler = BuildHandler(); try { var @when = When(); if (@when != null) { handler.Handle(@when); } } catch (Exception e) { Console.WriteLine(e); Exception = e; } Snapshot = snapshotstorage.Snapshot; PublishedEvents = eventpublisher.PublishedEvents; EventDescriptors = eventstorage.Events; }
public static void Run() { var eventTypeProvider = new DefaultEventTypeProvider <EventCountAggregate>(() => new[] { typeof(EventCountOne), typeof(EventCountTwo) });; var fileSystemSnapshotProvider = new FileSystemSnapshotProvider <EventCountAggregate>(); var defaultSnapshotStrategy = new DefaultSnapshotStrategy(5); var eventCountActorWithSnapshot = EventStoreStatefulActorBuilder <EventCountStatefulActor, EventCountAggregate, DemoSystemRegistry> .Create(StaticData.EventStoreUrl, Do.GetConnectionSettings(), ActorConfiguration.Default) .WithReadOneStreamFromStartCache(StaticData.EntityOne, eventTypeProvider: eventTypeProvider, getMultipleStreamsCatchupCacheConfiguration: builder => { builder.KeepAppliedEventsOnAggregate = true; }, snapshotStore: fileSystemSnapshotProvider, snapshotStrategy: defaultSnapshotStrategy) .Build(); var eventCountActor = EventStoreStatefulActorBuilder <EventCountStatefulActor, EventCountAggregate, DemoSystemRegistry> .Create(StaticData.EventStoreUrl, Do.GetConnectionSettings(), ActorConfiguration.Default) .WithReadOneStreamFromStartCache(StaticData.EntityOne, eventTypeProvider: eventTypeProvider, getMultipleStreamsCatchupCacheConfiguration: builder => { builder.KeepAppliedEventsOnAggregate = true; }) .Build(); Do.Run(eventCountActor, eventCountActorWithSnapshot); }
public Specification() { var eventpublisher = new SpecEventPublisher(); var eventstorage = new SpecEventStorage(eventpublisher, Given().ToList()); var snapshotstorage = new SpecSnapShotStorage(Snapshot); var snapshotStrategy = new DefaultSnapshotStrategy(); var repository = new SnapshotRepository(snapshotstorage, snapshotStrategy, new Repository(eventstorage), eventstorage); Session = new Session(repository); try { Aggregate = Session.Get <TAggregate>(Guid.Empty); } catch (AggregateNotFoundException) { } var handler = BuildHandler(); handler.Handle(When()); Snapshot = snapshotstorage.Snapshot; PublishedEvents = eventpublisher.PublishedEvents; EventDescriptors = eventstorage.Events; }
public Specification() { var eventpublisher = new SpecEventPublisher(); var eventstorage = new SpecEventStorage(eventpublisher, Given().ToList()); var snapshotstorage = new SpecSnapShotStorage(Snapshot); var snapshotStrategy = new DefaultSnapshotStrategy(); var repository = new SnapshotRepository(snapshotstorage, snapshotStrategy, new Repository(eventstorage), eventstorage); Session = new Session(repository); Aggregate = GetAggregate().Result; dynamic handler = BuildHandler(); if (handler is ICancellableCommandHandler <TCommand> ) { handler.Handle(When(), new CancellationToken()); } else if (handler is ICommandHandler <TCommand> ) { handler.Handle(When()); } else { throw new InvalidCastException($"{nameof(handler)} is not a command handler of type {typeof(TCommand)}"); } Snapshot = snapshotstorage.Snapshot; PublishedEvents = eventpublisher.PublishedEvents; EventDescriptors = eventstorage.Events; }
public void Setup() { var eventStore = new TestEventStore(); var eventPublisher = new TestEventPublisher(); var snapshotStrategy = new DefaultSnapshotStrategy(); _rep = new Repository <TestAggregateNoParameterLessConstructor>(eventStore, null, eventPublisher, snapshotStrategy); }
public void Setup() { var eventStore = new TestEventStore(); var testEventPublisher = new TestEventPublisher(); var snapshotStore = new NullSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); _rep = new Repository <TestAggregate>(eventStore, snapshotStore, testEventPublisher, snapshotStrategy); }
public void When_aggregate_type_doesnt_have_support_snapshoting() { var snapshotAggregateType = typeof(StubAggregate); var defaultSnapshotStrategy = new DefaultSnapshotStrategy(); var hasSupport = defaultSnapshotStrategy.CheckSnapshotSupport(snapshotAggregateType); hasSupport.Should().BeFalse(); }
public GetAnAggregateWithASnapshotTest() { var eventStore = new TestInMemoryEventStore(); var snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(snapshotStore); var snapshotRepository = new SnapshotRepository(snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore); var session = new Session(snapshotRepository); _aggregate = session.GetAsync <TestSnapshotAggregate>(Guid.NewGuid().ToString()).Result; }
public When_getting_a_snapshot_aggregate_with_no_snapshot() { var eventStore = new TestEventStore(); var snapshotStore = new NullSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); var repository = new SnapshotRepository(snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore); var session = new Session(repository); _aggregate = session.Get <TestSnapshotAggregate>(Guid.NewGuid()); }
public void Should_not_make_snapshot() { var defaultSnapshotStrategy = new DefaultSnapshotStrategy(); var aggregate = Mock.Of <IAggregate>(); var makeSnapshot = defaultSnapshotStrategy.ShouldMakeSnapshot(aggregate); makeSnapshot.Should().BeFalse(); }
public When_getting_an_aggregate_with_snapshot() { var eventStore = new TestInMemoryEventStore(); var snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); var snapshotRepository = new SnapshotRepository(snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore); var session = new Session(snapshotRepository); _aggregate = session.Get <TestSnapshotAggregate>(Guid.NewGuid()).Result; }
public void Setup() { var eventStore = new TestEventStore(); var eventPublisher = new TestEventPublisher(); var snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); var rep = new Repository <TestSnapshotAggregate>(eventStore, snapshotStore, eventPublisher, snapshotStrategy); _aggregate = rep.Get(Guid.NewGuid()); }
public void Setup() { _eventStore = new TestEventStore(); _eventPublisher = new TestEventPublisher(); var snapshotstore = new NullSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); _rep = new Repository <TestAggregateNoParameterLessConstructor>(_eventStore, snapshotstore, _eventPublisher, snapshotStrategy); _aggregate = new TestAggregateNoParameterLessConstructor(2); }
public void Should_make_snapshot() { var defaultSnapshotStrategy = new DefaultSnapshotStrategy(); var snapshotAggregate = Mock.Of <ISnapshotAggregate>(); var makeSnapshot = defaultSnapshotStrategy.ShouldMakeSnapshot(snapshotAggregate); makeSnapshot.Should().BeTrue(); }
public void Setup() { var eventStore = new TestEventStore(); var snapshotStore = new NullSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); var repository = new SnapshotRepository(snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore); var session = new Session(repository); _aggregate = session.Get <TestSnapshotAggregate>(Guid.NewGuid()); }
public When_getting_not_snapshotable_aggreate() { var eventStore = new TestEventStore(); _snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); var repository = new SnapshotRepository(_snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore); var session = new Session(repository); _aggregate = session.Get <TestAggregate>(Guid.NewGuid()).Result; }
public void Setup() { var eventStore = new TestInMemoryEventStore(); var eventPublisher = new TestEventPublisher(); var snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); var snapshotRepository = new SnapshotRepository(snapshotStore, snapshotStrategy, new Repository(eventStore, eventPublisher), eventStore); var session = new Session(snapshotRepository); _aggregate = session.GetAsync <TestSnapshotAggregate>(Guid.NewGuid()).Result; }
public When_getting_a_snapshot_aggregate_with_no_snapshot() { _eventStore = new TestEventStore(); var snapshotStore = new NullSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); var repository = new SnapshotRepository(snapshotStore, snapshotStrategy, new Repository(_eventStore), _eventStore); var session = new Session(repository); _token = new CancellationToken(); _aggregate = session.Get <TestSnapshotAggregate>(Guid.NewGuid(), cancellationToken: _token).Result; }
public GetNotSnapshotableAggregateTest() { var eventStore = new TestEventStore(); _snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(_snapshotStore); var repository = new SnapshotRepository(_snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore); var session = new Session(repository); _aggregate = session.GetAsync <TestAggregate>(Guid.NewGuid().ToString()).Result; }
public void Setup() { var eventStore = new TestSnapshotEventStore(); var eventPublisher = new TestEventPublisher(); var snapshotStore = new NullSnapshotStore(); 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); var session = new UnitOfWork <ISingleSignOnToken>(repository); _aggregate = session.Get <TestSnapshotAggregate>(Guid.NewGuid()); }
public void Setup() { var eventStore = new TestInMemoryEventStore(); var eventPublisher = new TestEventPublisher(); var snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy <ISingleSignOnToken>(); var dependencyResolver = new TestDependencyResolver(null); var aggregateFactory = new AggregateFactory(dependencyResolver, dependencyResolver.Resolve <ILogger>()); var snapshotRepository = new SnapshotRepository <ISingleSignOnToken>(snapshotStore, snapshotStrategy, new AggregateRepository <ISingleSignOnToken>(aggregateFactory, eventStore, eventPublisher, new NullCorrelationIdHelper(), new ConfigurationManager()), eventStore, aggregateFactory); var session = new UnitOfWork <ISingleSignOnToken>(snapshotRepository); _aggregate = session.Get <TestSnapshotAggregate>(Guid.NewGuid()); }
public GetSnapshotAggregateWithNoSnapshotTest() { var eventStore = new TestEventStore(); var snapshotStore = new NullSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(snapshotStore); var repository = new SnapshotRepository(snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore); var eventStoreSettings = new TestEventStoreSettings { SessionLockEnabled = false }; var session = new Session(repository, eventStoreSettings, null); _aggregate = session.GetAsync <TestSnapshotAggregate>(Guid.NewGuid().ToString()).Result; }
public EventSourceHelper(List <IEvent> existingEvents) { var eventpublisher = new SpecEventPublisher(); var eventstorage = new SpecEventStorage(eventpublisher, existingEvents); var snapshotstorage = new SpecSnapShotStorage(null); var snapshotStrategy = new DefaultSnapshotStrategy(); var repository = new SnapshotRepository(snapshotstorage, snapshotStrategy, new Repository(eventstorage), eventstorage); Session = new Session(repository); PublishedEvents = eventpublisher.PublishedEvents; EventDescriptors = eventstorage.Events; }
public void Setup() { var eventStore = new TestEventStore(); var eventPublisher = new TestEventPublisher(); _snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); var rep = new Repository <TestSnapshotAggregate>(eventStore, _snapshotStore, eventPublisher, snapshotStrategy); var aggregate = new TestSnapshotAggregate(); for (int i = 0; i < 30; i++) { aggregate.DoSomething(); } rep.Save(aggregate, 0); }
public void Setup() { var eventStore = new TestInMemoryEventStore(); _snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy(); var repository = new SnapshotRepository(_snapshotStore, snapshotStrategy, new Repository(eventStore), eventStore); var session = new Session(repository); var aggregate = new TestSnapshotAggregate(); for (var i = 0; i < 200; i++) { aggregate.DoSomething(); } session.Add(aggregate); session.Commit(); }
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(); } }
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(); } }
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() { var eventStore = new TestInMemoryEventStore(); var eventPublisher = new TestEventPublisher(); _snapshotStore = new TestSnapshotStore(); var snapshotStrategy = new DefaultSnapshotStrategy <ISingleSignOnToken>(); var aggregateFactory = new AggregateFactory(null); var repository = new SnapshotRepository <ISingleSignOnToken>(_snapshotStore, snapshotStrategy, new Repository <ISingleSignOnToken>(aggregateFactory, eventStore, eventPublisher, new NullCorrelationIdHelper()), eventStore, aggregateFactory); var session = new UnitOfWork <ISingleSignOnToken>(repository); var aggregate = new TestSnapshotAggregate(); for (int i = 0; i < 30; i++) { aggregate.DoSomething(); } session.Add(aggregate); session.Commit(); }
public void Run() { var eventstorage = new SpecEventStorage(Given().ToList()); var snapshotstorage = new SpecSnapShotStorage(Snapshot); var eventpublisher = new SpecEventPublisher(); var snapshotStrategy = new DefaultSnapshotStrategy(); Repository = new Repository <TAggregate>(eventstorage, snapshotstorage, eventpublisher, snapshotStrategy); Aggregate = Repository.Get(Guid.Empty); var handler = BuildHandler(); handler.Handle(When()); Snapshot = snapshotstorage.Snapshot; PublishedEvents = eventpublisher.PublishedEvents; EventDescriptors = eventstorage.Events; }