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); }
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); }
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(); }); }