public async Task FakeDbDataReader_Async_should_behave() { FakeDbCommand cmd = new FakeDbCommand(); FakeDbDataReader rdr = new FakeDbDataReader(cmd); // List <TestTable> tables = RandomDataGenerator.CreateRandomTables(seed: 1234, tableCount: 5); rdr.ResetAndLoadTestData(tables); rdr.AllTables.Count.ShouldBe(5); // rdr.AsyncMode = AsyncMode.AwaitAsync; // Table 0: { Int32 i = 0; while (await rdr.ReadAsync()) { i++; } i.ShouldBe(tables[0].Rows.Count); } // Table 1: (await rdr.NextResultAsync()).ShouldBeTrue(); { Int32 i = 0; while (await rdr.ReadAsync()) { i++; } i.ShouldBe(tables[1].Rows.Count); } // Table 2: (await rdr.NextResultAsync()).ShouldBeTrue(); { Int32 i = 0; while (await rdr.ReadAsync()) { i++; } i.ShouldBe(tables[2].Rows.Count); } // Table 3: (await rdr.NextResultAsync()).ShouldBeTrue(); { Int32 i = 0; while (await rdr.ReadAsync()) { i++; } i.ShouldBe(tables[3].Rows.Count); } // Table 4: (await rdr.NextResultAsync()).ShouldBeTrue(); { Int32 i = 0; while (await rdr.ReadAsync()) { i++; } i.ShouldBe(tables[4].Rows.Count); } (await rdr.NextResultAsync()).ShouldBeFalse(); }