Example #1
0
        private async Task StoreFooRegistered(string fooId)
        {
            var fooRegistered1 = new FooRegistered(fooId, "testing foo");

            var aggregateRecordFoo1 = new AggregateRecord(fooId, "Foo", 0);
            var eventRecordsFoo1    = new List <EventRecord <DomainEvent> >
            {
                new EventRecord <DomainEvent>(fooRegistered1.Id, fooRegistered1.CreatedAt, fooRegistered1)
            };

            await _eventStoreRepository.SaveAsync(aggregateRecordFoo1, eventRecordsFoo1).ConfigureAwait(false);
        }
Example #2
0
        public async Task InsertAsync_GetAsync_MultipleAggregateTypes()
        {
            // Given
            const string booId      = "001";
            var          booCreated = new BooCreated(booId, 100M, false);

            const string fooId         = "100";
            var          fooRegistered = new FooRegistered(fooId, "testing foo");

            // When
            var aggregateRecordBoo = new AggregateRecord(booId, "Boo", 0);
            var eventRecordsBoo    = new List <EventRecord <DomainEvent> >
            {
                new EventRecord <DomainEvent>(booCreated.Id, booCreated.CreatedAt, booCreated)
            };

            await _eventStoreRepository.SaveAsync(aggregateRecordBoo, eventRecordsBoo).ConfigureAwait(false);

            var aggregateRecordFoo = new AggregateRecord(fooId, "Foo", 0);
            var eventRecordsFoo    = new List <EventRecord <DomainEvent> >
            {
                new EventRecord <DomainEvent>(fooRegistered.Id, fooRegistered.CreatedAt, fooRegistered)
            };

            await _eventStoreRepository.SaveAsync(aggregateRecordFoo, eventRecordsFoo).ConfigureAwait(false);

            // Then
            var resultsBoo = await _eventStoreRepository.GetAsync <DomainEvent>(booId).ConfigureAwait(false);

            Assert.Equal(1, resultsBoo.Count);
            Assert.Equal(booCreated.GetType(), resultsBoo.Single(x => x.AggregateId == booId).Event.GetType());

            var resultsFoo = await _eventStoreRepository.GetAsync <DomainEvent>(fooId).ConfigureAwait(false);

            Assert.Equal(1, resultsFoo.Count);
            Assert.Equal(fooRegistered.GetType(), resultsFoo.Single(x => x.AggregateId == fooId).Event.GetType());
        }