Beispiel #1
0
            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");
            }
Beispiel #3
0
            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");
            }
Beispiel #4
0
            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);
            }
Beispiel #5
0
            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);
            }
Beispiel #6
0
            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);
            }
Beispiel #7
0
            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);
            }