public static AggregateRepository <TAggregate> CreateEnvironment <TAggregate>( out EventBus eventBus, out EventStore eventStore, int snapshotThreashold = 10) where TAggregate : IAggregateRoot, new() { TestDatabase.Items.Clear(); var savedHandler = new TestAggregateSavedEventHandler(); var dependencyService = DependencyServiceMock.GetMock(new List <DependencyDescriptor>() { new DependencyDescriptor(typeof(IEventHandler <TestAggregateCreatedEvent>), new TestAggregateCreatedEventHandler()), new DependencyDescriptor(typeof(IEventHandler <TestAggregateChangedEvent>), new TestAggregateChangedEventHandler()), new DependencyDescriptor(typeof(IEventHandler <AggregateSavedEvent>), savedHandler) }); eventBus = new EventBus(dependencyService); eventStore = new EventStore(eventBus, new InMemoryEventStore(), PerformanceCounterMock.GetMock()); var snapshotStore = new SnapshotStore(new InMemorySnapshotStore()); var repository = new AggregateRepository <TAggregate>(eventStore, snapshotStore); var snapshotProcessor = new SnapshotProcessor(snapshotStore, new List <ISnapshotableRepository>() { repository }, snapshotThreashold, PerformanceCounterMock.GetMock()); savedHandler.Processor = snapshotProcessor; return(repository); }
public void Initialize() { this.logger = new Mock <ILogger>(MockBehavior.Strict); this.createSnapshotMultiplexer = new Mock <ICreateSnapshotMultiplexer>(MockBehavior.Strict); this.createAllSnapshots = new Mock <ICreateAllSnapshotsProcessor>(MockBehavior.Strict); this.target = new SnapshotProcessor( this.createSnapshotMultiplexer.Object, this.createAllSnapshots.Object); }