public async Task ReadEventsAsync_WhenCursorIsNotEmpty_ReturnsNotEmptyCollectionEvents(
            EventStreamReader reader)
        {
            await reader.ReadEventsAsync();

            Assert.NotEmpty(reader.Events);
        }
        public async Task<IEventStreamReader> CreateStreamReaderAsync(string streamName, StreamVersion streamVersion)
        {
            Require.NotEmpty(streamName, "streamName");

            var reader = new EventStreamReader(
                streamName,
                await m_journal.OpenEventStreamCursorAsync(streamName, streamVersion),
                version => m_journal.OpenEventStreamCursorAsync(streamName, version));

            return reader;
        }
 public void IsCompleted_WhenCursorIsNotCompleted_ReturnsFalse(
     EventStreamReader reader)
 {
     Assert.False(reader.IsCompleted);
 }
 public void IsCompleted_WhenCursorIsCompleted_ReturnsTrue(
     EventStreamReader reader)
 {
     Assert.True(reader.IsCompleted);
 }
 public async Task ContinueAsync_WhenCursorIsCompleted_DoesNotThrow(
     EventStreamReader reader)
 {
     await reader.ContinueAsync();
 }
 public async Task ContinueAsync_WhenCursorIsNotCompleted_Throws(
     EventStreamReader reader)
 {
     await Assert.ThrowsAsync<InvalidOperationException>(reader.ContinueAsync);
 }
 public void HaEvents_WhenCursorIsNotEmpty_ReturnsTrue(
     EventStreamReader reader)
 {
     Assert.True(reader.HasEvents);
 }
 public void HasEvents_WhenCursorIsEmpty_ReturnsFalse(
     EventStreamReader reader)
 {
     Assert.False(reader.HasEvents);
 }
 public async Task ReadEventsAsync_WhenCursorIsNotEmpty_DoesNotThrow(
     EventStreamReader reader)
 {
     await reader.ReadEventsAsync();
 }
 public async Task ReadEventsAsync_WhenCursorIsEmpty_Throw(
     EventStreamReader reader)
 {
     await Assert.ThrowsAsync<InvalidOperationException>(reader.ReadEventsAsync);
 }