public async void ShouldWaitForAllRecordsToArrive() { var recordYielder = new TestRecordYielder(5, 10, _output); var recordYielderEnum = recordYielder.Records.GetEnumerator(); var stream = new Mock <IResultStream>(); stream.Setup(x => x.NextRecordAsync()).Returns(() => NextRecordFromEnum(recordYielderEnum)); stream.Setup(x => x.GetKeysAsync()).Returns(() => Task.FromResult(TestRecordYielder.Keys.ToArray())); int count = 0; var cursor = new StatementResultCursor(stream.Object); var t = Task.Factory.StartNew(async() => { // ReSharper disable once LoopCanBeConvertedToQuery while (await cursor.FetchAsync()) { count++; } count.Should().Be(10); }); while (count < 5) { Thread.Sleep(10); } recordYielder.AddNew(5); await t; }
public async Task ShouldSetKeysProperlyIfKeysNotNull() { var result = new StatementResultCursor(() => Task.FromResult(new[] { "test" }), () => NextRecordFromEnum(new List <IRecord>().GetEnumerator())); var keys = await result.KeysAsync(); keys.Should().HaveCount(1).And.Contain("test"); }
public async Task ShouldSetKeysProperlyIfKeysNotNull() { var stream = new Mock <IResultStream>(); stream.Setup(x => x.NextRecordAsync()).Returns(NextRecordFromEnum(new List <IRecord>().GetEnumerator())); stream.Setup(x => x.GetKeysAsync()).Returns(() => Task.FromResult(new[] { "test" })); var result = new StatementResultCursor(stream.Object); var keys = await result.KeysAsync(); keys.Should().HaveCount(1).And.Contain("test"); }
public async void ShouldReturnRecords() { var recordYielder = new TestRecordYielder(5, 10, _output); var recordYielderEnum = recordYielder.RecordsWithAutoLoad.GetEnumerator(); var cursor = new StatementResultCursor(TestRecordYielder.Keys, () => NextRecordFromEnum(recordYielderEnum)); var records = new List <IRecord>(); while (await cursor.FetchAsync()) { records.Add(cursor.Current); } records.Count.Should().Be(10); }
public async void ShouldReturnRecordsImmediatelyWhenReady() { var recordYielder = new TestRecordYielder(5, 10, _output); var recordYielderEnum = recordYielder.Records.GetEnumerator(); var result = new StatementResultCursor(TestRecordYielder.Keys, () => NextRecordFromEnum(recordYielderEnum)); var records = new List <IRecord>(); var count = 5; while (count > 0 && await result.FetchAsync()) { records.Add(result.Current); count--; } records.Count.Should().Be(5); }
public async void ShouldReturnRecords() { var recordYielder = new TestRecordYielder(5, 10, _output); var recordYielderEnum = recordYielder.RecordsWithAutoLoad.GetEnumerator(); var stream = new Mock <IResultStream>(); stream.Setup(x => x.NextRecordAsync()).Returns(() => NextRecordFromEnum(recordYielderEnum)); stream.Setup(x => x.GetKeysAsync()).Returns(() => Task.FromResult(TestRecordYielder.Keys.ToArray())); var cursor = new StatementResultCursor(stream.Object); var records = new List <IRecord>(); while (await cursor.FetchAsync()) { records.Add(cursor.Current); } records.Count.Should().Be(10); }
public async void ShouldReturnRecordsImmediatelyWhenReady() { var recordYielder = new TestRecordYielder(5, 10, _output); var recordYielderEnum = recordYielder.Records.GetEnumerator(); var stream = new Mock <IResultStream>(); stream.Setup(x => x.NextRecordAsync()).Returns(() => NextRecordFromEnum(recordYielderEnum)); stream.Setup(x => x.GetKeysAsync()).Returns(() => Task.FromResult(TestRecordYielder.Keys.ToArray())); var result = new StatementResultCursor(stream.Object); var records = new List <IRecord>(); var count = 5; while (count > 0 && await result.FetchAsync()) { records.Add(result.Current); count--; } records.Count.Should().Be(5); }