Ejemplo n.º 1
0
        public async Task write_events_to_stream()
        {
            var aggregateId = Guid.NewGuid();
            var streamId    =
                StreamIdBuilder.Create()
                .WithAggregateId(aggregateId)
                .WithAggregateType <DummyAggregate>()
                .Build();

            var writeEvents = new List <Event> {
                new DummyCreatedEvent(aggregateId, "The name", "https://url.example.com"),
                new DummyNameChangedEvent(aggregateId, "The new name"),
                new DummyUrlChangedEvent(aggregateId, "https://newurl.example.com")
            };

            var sut = new SqlStreamStoreStreamWriter(_storeProvider, _serializer);
            await sut.AppendEventsToStream(streamId, writeEvents);

            var reader = new SqlStreamStoreStreamReader(_storeProvider, _serializer);

            var count      = 0;
            var enumerator = reader.ReadAllEventsFromStreamAsync(streamId).GetAsyncEnumerator();

            while (await enumerator.MoveNextAsync())
            {
                count++;
            }
            await enumerator.DisposeAsync();

            count.Should().Be(3);
        }
Ejemplo n.º 2
0
        private async Task <EventRepository <T> > CreateRepository <T>()
            where T : AggregateRoot
        {
            var reader = new SqlStreamStoreStreamReader(_storeProvider, _serializer);
            var writer = new SqlStreamStoreStreamWriter(_storeProvider, _serializer);
            var sut    = new EventRepository <T>(writer, reader);

            return(sut);
        }
Ejemplo n.º 3
0
        public async Task Throw_stream_not_found_exception_if_stream_does_not_exist()
        {
            var aggregateId = Guid.NewGuid();
            var streamId    =
                StreamIdBuilder.Create()
                .WithAggregateId(aggregateId)
                .WithAggregateType <DummyAggregate>()
                .Build();

            var reader = new SqlStreamStoreStreamReader(_storeProvider, _serializer);
            await Assert.ThrowsAsync <StreamNotFoundException>(async() =>
            {
                var enumerator = reader.ReadAllEventsFromStreamAsync(streamId).GetAsyncEnumerator();
                while (await enumerator.MoveNextAsync())
                {
                    ;
                }
                await enumerator.DisposeAsync();
            });
        }