public void ShouldWaitForAllRecordsToArrive() { var recordYielder = new TestRecordYielder(5, 10, _output); int count = 0; var cursor = new InternalStatementResult( new ListBasedRecordCursor(TestRecordYielder.Keys, () => recordYielder.Records), new BlockingExecutor()); var t = Task.Factory.StartNew(() => { // ReSharper disable once LoopCanBeConvertedToQuery foreach (var item in cursor) { count++; } count.Should().Be(10); }); while (count < 5) { Thread.Sleep(10); } recordYielder.AddNew(5); t.Wait(); }
public void ShouldReturnRecords() { var recordYielder = new TestRecordYielder(5, 10, _output); var cursor = new InternalStatementResult(new ListBasedRecordCursor(TestRecordYielder.Keys, () => recordYielder.RecordsWithAutoLoad), new BlockingExecutor()); var records = cursor.ToList(); records.Count.Should().Be(10); }
public void ShouldReturnRecordsImmediatelyWhenReady() { var recordYielder = new TestRecordYielder(5, 10, _output); var result = new InternalStatementResult(new ListBasedRecordCursor(TestRecordYielder.Keys, () => recordYielder.Records), new BlockingExecutor()); var temp = result.Take(5); var records = temp.ToList(); records.Count.Should().Be(5); }