Beispiel #1
0
        public void DocumentDatabaseEventStoreAllShouldReturnAnTimestampOrderedListWhenCalledInAForeachLoop()
        {
            var eventDatastore = new Mock <IEventDatastore>();

            eventDatastore.Setup(s => s.Select()).Returns(DomainEventsMock.CreateUnorderedList);

            var documentDatabaseEventStore = new DocumentDatabaseEventStore(eventDatastore.Object);

            var results = documentDatabaseEventStore.All();

            foreach (var result in results)
            {
                result.EventName.Should().Be("1");
                result.TimeStamp.Should().Be(DateTime.Parse("2018-01-01 15:00:00"));
                break;
            }
        }
Beispiel #2
0
        public void DocumentDatabaseEventStoreAllShouldReturnAnTimestampOrderedListWhenCalled()
        {
            var eventDatastore = new Mock <IEventDatastore>();

            eventDatastore.Setup(s => s.Select()).Returns(DomainEventsMock.CreateUnorderedList);

            var documentDatabaseEventStore = new DocumentDatabaseEventStore(eventDatastore.Object);

            var results = documentDatabaseEventStore.All();

            results.ElementAt(0).EventName.Should().Be("1");
            results.ElementAt(0).TimeStamp.Should().Be(DateTime.Parse("2018-01-01 15:00:00"));
            results.ElementAt(1).EventName.Should().Be("2");
            results.ElementAt(1).Version.Should().Be(1);
            results.ElementAt(2).EventName.Should().Be("3");
            results.ElementAt(3).EventName.Should().Be("4");
            results.ElementAt(4).EventName.Should().Be("5");
            results.ElementAt(4).Id.Should().Be(Guid.Parse("7AB7CB93-ADF3-4E2E-88F9-6C9D36DFE440"));
        }
Beispiel #3
0
        public static AggregateRepository <TAggregate> CreateDatabaseEnvironment <TAggregate>(
            out EventBus eventBus,
            out EventStore eventStore,
            out SnapshotStore snapshotStore,
            out DocumentDatabaseEventStore databaseEventStore,
            out SnapshotProcessor snapshotProcessor,
            out DocumentDatabaseSnapshotStore databaseSnapshotStore,
            int snapshotThreashold = 100)
            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);
            databaseEventStore    = new DocumentDatabaseEventStore(new InMemoryEventDatastore());
            databaseSnapshotStore = new DocumentDatabaseSnapshotStore(new InMemorySnapshotDatastore());
            eventStore            = new EventStore(eventBus, databaseEventStore, PerformanceCounterMock.GetMock());
            snapshotStore         = new SnapshotStore(databaseSnapshotStore);
            var repository = new AggregateRepository <TAggregate>(eventStore, snapshotStore);

            snapshotProcessor = new SnapshotProcessor(snapshotStore, new List <ISnapshotableRepository>()
            {
                repository
            },
                                                      snapshotThreashold, PerformanceCounterMock.GetMock());
            savedHandler.Processor = snapshotProcessor;

            return(repository);
        }