Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }