public void TestDehydrateProjections() { if (_connectionString == null) { return; } // Create events store, put some events in var eventStore = new PostgresEventStore(null, _connectionString, "TestDehydrateProjections", true) as IEventStore; Stopwatch sw = new Stopwatch(); sw.Start(); for (int i = 0; i < 1000; i++) { var dog = new DogAggregate(Guid.NewGuid(), "Dog name"); dog.Poop(2000); dog.Poop(1030); dog.Poop(1020); dog.Poop(1100); dog.Bark(1020); dog.Bark(1040); dog.Poop(1200); dog.Poop(1300); dog.Bark(1040); dog.Poop(1200); eventStore.Aggregates.Store(dog); } sw.Stop(); System.Diagnostics.Debug.WriteLine("Create 10000 events took: " + (sw.ElapsedMilliseconds) + " milliseconds"); // Create new instance of event store and dehydrate into in-memory projection var eventStore2 = new PostgresEventStore(null, _connectionString, "TestDehydrateProjections") as IEventStore; var poopProjection = new PoopProjection(); eventStore.Projections.Add(poopProjection); sw.Restart(); eventStore.DehydrateProjections(); sw.Stop(); System.Diagnostics.Debug.WriteLine("Dehydrate 10000 events took: " + (sw.ElapsedMilliseconds) + " milliseconds"); poopProjection.PoopReport.Count.Should().Be(1000); }
public void TestAggregateHydrationAndDehydration() { var eventStore = new InMemEventStore(null) as IEventStore; var aggregateBeforeHydration = new DogAggregate(Guid.NewGuid(), "Snoopy"); aggregateBeforeHydration.Bark(100); aggregateBeforeHydration.Poop(1500); eventStore.Aggregates.Store(aggregateBeforeHydration); var dehydratedAggregate = eventStore.Aggregates.Load <DogAggregate>(aggregateBeforeHydration.Id); dehydratedAggregate.Should().BeEquivalentTo(aggregateBeforeHydration); }
public void TestAggregateHydrationAndDehydration() { if (_connectionString == null) { return; } var eventStore = new PostgresEventStore(null, _connectionString, "TestAggregateHydrationAndDehydration", true) as IEventStore; var aggregateBeforeHydration = new DogAggregate(Guid.NewGuid(), "Snoopy"); aggregateBeforeHydration.Bark(100); aggregateBeforeHydration.Poop(1500); eventStore.Aggregates.Store(aggregateBeforeHydration); var dehydratedAggregate = eventStore.Aggregates.Load <DogAggregate>(aggregateBeforeHydration.Id); dehydratedAggregate.Should().BeEquivalentTo(aggregateBeforeHydration); }