Skip to content

Commit a155490

Browse files
cheenamalhotraWraith2
authored andcommitted
Modify tests (#2)
1 parent bd4c18f commit a155490

File tree

2 files changed

+50
-40
lines changed

2 files changed

+50
-40
lines changed

src/Microsoft.Data.SqlClient/netcore/src/Microsoft/Data/SqlClient/SqlDataReader.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3868,6 +3868,7 @@ internal bool TryReadColumnInternal(int i, bool readHeaderOnly = false, bool for
38683868
else
38693869
{
38703870
// we have read past the column somehow, this is an error
3871+
Debug.Assert(false, "We have read past the column somehow, this is an error");
38713872
}
38723873
}
38733874
else

src/Microsoft.Data.SqlClient/tests/ManualTests/SQL/DataReaderTest/DataReaderStreamsTest.cs

Lines changed: 49 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ public static class DataReaderStreamsTest
1717
{
1818
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
1919
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
20-
[MemberData(nameof(GetCommandBehaviours))]
21-
public static async Task GetFieldValueAsync_OfStream(CommandBehavior behavior)
20+
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
21+
public static async Task GetFieldValueAsync_OfStream(CommandBehavior behavior, bool isExecuteAsync)
2222
{
2323
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
2424
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -31,9 +31,9 @@ public static async Task GetFieldValueAsync_OfStream(CommandBehavior behavior)
3131
using (SqlCommand command = new SqlCommand(query, connection))
3232
{
3333
connection.Open();
34-
using (SqlDataReader reader = command.ExecuteReader(behavior))
34+
using (SqlDataReader reader = await ExecuteReader(command, behavior, isExecuteAsync))
3535
{
36-
if (reader.Read())
36+
if (await Read(reader, isExecuteAsync))
3737
{
3838
using (MemoryStream buffer = new MemoryStream(originalData.Length))
3939
using (Stream stream = await reader.GetFieldValueAsync<Stream>(1))
@@ -54,8 +54,8 @@ public static async Task GetFieldValueAsync_OfStream(CommandBehavior behavior)
5454

5555
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
5656
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
57-
[MemberData(nameof(GetCommandBehaviours))]
58-
public static async Task GetFieldValueAsync_OfXmlReader(CommandBehavior behavior)
57+
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
58+
public static async Task GetFieldValueAsync_OfXmlReader(CommandBehavior behavior, bool isExecuteAsync)
5959
{
6060
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
6161
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -68,9 +68,9 @@ public static async Task GetFieldValueAsync_OfXmlReader(CommandBehavior behavior
6868
using (SqlCommand command = new SqlCommand(query, connection))
6969
{
7070
connection.Open();
71-
using (SqlDataReader reader = command.ExecuteReader(behavior))
71+
using (SqlDataReader reader = await ExecuteReader(command, behavior, isExecuteAsync))
7272
{
73-
if (reader.Read())
73+
if (await Read(reader, isExecuteAsync))
7474
{
7575
using (XmlReader xmlReader = await reader.GetFieldValueAsync<XmlReader>(1))
7676
{
@@ -89,8 +89,8 @@ public static async Task GetFieldValueAsync_OfXmlReader(CommandBehavior behavior
8989

9090
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
9191
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
92-
[MemberData(nameof(GetCommandBehaviours))]
93-
public static async Task GetFieldValueAsync_OfTextReader(CommandBehavior behavior)
92+
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
93+
public static async Task GetFieldValueAsync_OfTextReader(CommandBehavior behavior, bool isExecuteAsync)
9494
{
9595
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
9696
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -103,9 +103,9 @@ public static async Task GetFieldValueAsync_OfTextReader(CommandBehavior behavio
103103
using (SqlCommand command = new SqlCommand(query, connection))
104104
{
105105
connection.Open();
106-
using (SqlDataReader reader = command.ExecuteReader(behavior))
106+
using (SqlDataReader reader = await ExecuteReader(command, behavior, isExecuteAsync))
107107
{
108-
if (reader.Read())
108+
if (await Read(reader, isExecuteAsync))
109109
{
110110
using (TextReader textReader = await reader.GetFieldValueAsync<TextReader>(1))
111111
{
@@ -124,8 +124,8 @@ public static async Task GetFieldValueAsync_OfTextReader(CommandBehavior behavio
124124

125125
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
126126
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
127-
[MemberData(nameof(GetCommandBehaviours))]
128-
public static void GetFieldValue_OfXmlReader(CommandBehavior behavior)
127+
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
128+
public static async void GetFieldValue_OfXmlReader(CommandBehavior behavior, bool isExecuteAsync)
129129
{
130130
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
131131
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -138,9 +138,9 @@ public static void GetFieldValue_OfXmlReader(CommandBehavior behavior)
138138
using (SqlCommand command = new SqlCommand(query, connection))
139139
{
140140
connection.Open();
141-
using (SqlDataReader reader = command.ExecuteReader(behavior))
141+
using (SqlDataReader reader = await ExecuteReader(command, behavior, isExecuteAsync))
142142
{
143-
if (reader.Read())
143+
if (await Read(reader, isExecuteAsync))
144144
{
145145
using (XmlReader xmlReader = reader.GetFieldValue<XmlReader>(1))
146146
{
@@ -159,8 +159,8 @@ public static void GetFieldValue_OfXmlReader(CommandBehavior behavior)
159159

160160
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
161161
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
162-
[MemberData(nameof(GetCommandBehaviours))]
163-
public static void GetFieldValue_OfStream(CommandBehavior behavior)
162+
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
163+
public static async void GetFieldValue_OfStream(CommandBehavior behavior, bool isExecuteAsync)
164164
{
165165
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
166166
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -173,9 +173,9 @@ public static void GetFieldValue_OfStream(CommandBehavior behavior)
173173
using (SqlCommand command = new SqlCommand(query, connection))
174174
{
175175
connection.Open();
176-
using (SqlDataReader reader = command.ExecuteReader(behavior))
176+
using (SqlDataReader reader = await ExecuteReader(command, behavior, isExecuteAsync))
177177
{
178-
if (reader.Read())
178+
if (await Read(reader, isExecuteAsync))
179179
{
180180
using (Stream stream = reader.GetFieldValue<Stream>(1))
181181
{
@@ -193,8 +193,8 @@ public static void GetFieldValue_OfStream(CommandBehavior behavior)
193193

194194
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
195195
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
196-
[MemberData(nameof(GetCommandBehaviours))]
197-
public static void GetFieldValue_OfTextReader(CommandBehavior behavior)
196+
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
197+
public static async void GetFieldValue_OfTextReader(CommandBehavior behavior, bool isExecuteAsync)
198198
{
199199
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
200200
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -207,9 +207,9 @@ public static void GetFieldValue_OfTextReader(CommandBehavior behavior)
207207
using (SqlCommand command = new SqlCommand(query, connection))
208208
{
209209
connection.Open();
210-
using (SqlDataReader reader = command.ExecuteReader(behavior))
210+
using (SqlDataReader reader = await ExecuteReader(command, behavior, isExecuteAsync))
211211
{
212-
if (reader.Read())
212+
if (await Read(reader, isExecuteAsync))
213213
{
214214
using (TextReader textReader = reader.GetFieldValue<TextReader>(1))
215215
{
@@ -228,8 +228,8 @@ public static void GetFieldValue_OfTextReader(CommandBehavior behavior)
228228

229229
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
230230
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
231-
[MemberData(nameof(GetCommandBehaviours))]
232-
public static void GetStream(CommandBehavior behavior)
231+
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
232+
public static async void GetStream(CommandBehavior behavior, bool isExecuteAsync)
233233
{
234234
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
235235
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -242,9 +242,9 @@ public static void GetStream(CommandBehavior behavior)
242242
using (SqlCommand command = new SqlCommand(query, connection))
243243
{
244244
connection.Open();
245-
using (SqlDataReader reader = command.ExecuteReader(behavior))
245+
using (SqlDataReader reader = await ExecuteReader(command, behavior, isExecuteAsync))
246246
{
247-
if (reader.Read())
247+
if (await Read(reader, isExecuteAsync))
248248
{
249249
using (MemoryStream buffer = new MemoryStream(originalData.Length))
250250
using (Stream stream = reader.GetStream(1))
@@ -265,8 +265,8 @@ public static void GetStream(CommandBehavior behavior)
265265

266266
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
267267
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
268-
[MemberData(nameof(GetCommandBehaviours))]
269-
public static void GetXmlReader(CommandBehavior behavior)
268+
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
269+
public static async void GetXmlReader(CommandBehavior behavior, bool isExecuteAsync)
270270
{
271271
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
272272
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -279,9 +279,9 @@ public static void GetXmlReader(CommandBehavior behavior)
279279
using (SqlCommand command = new SqlCommand(query, connection))
280280
{
281281
connection.Open();
282-
using (SqlDataReader reader = command.ExecuteReader(behavior))
282+
using (SqlDataReader reader = await ExecuteReader(command, behavior, isExecuteAsync))
283283
{
284-
if (reader.Read())
284+
if (await Read(reader, isExecuteAsync))
285285
{
286286
using (XmlReader xmlReader = reader.GetXmlReader(1))
287287
{
@@ -300,8 +300,8 @@ public static void GetXmlReader(CommandBehavior behavior)
300300

301301
[SkipOnTargetFramework(TargetFrameworkMonikers.NetFramework)]
302302
[ConditionalTheory(typeof(DataTestUtility), nameof(DataTestUtility.AreConnStringsSetup))]
303-
[MemberData(nameof(GetCommandBehaviours))]
304-
public static void GetTextReader(CommandBehavior behavior)
303+
[MemberData(nameof(GetCommandBehavioursAndIsAsync))]
304+
public static async void GetTextReader(CommandBehavior behavior, bool isExecuteAsync)
305305
{
306306
const int PacketSize = 512; // force minimun packet size so that the test data spans multiple packets to test sequential access spanning
307307
string connectionString = SetConnectionStringPacketSize(DataTestUtility.TCPConnectionString, PacketSize);
@@ -314,9 +314,9 @@ public static void GetTextReader(CommandBehavior behavior)
314314
using (SqlCommand command = new SqlCommand(query, connection))
315315
{
316316
connection.Open();
317-
using (SqlDataReader reader = command.ExecuteReader(behavior))
317+
using (SqlDataReader reader = await ExecuteReader(command, behavior, isExecuteAsync))
318318
{
319-
if (reader.Read())
319+
if (await Read(reader, isExecuteAsync))
320320
{
321321
using (TextReader textReader = reader.GetTextReader(1))
322322
{
@@ -407,7 +407,7 @@ public static void NullStreamProperties(CommandBehavior behavior, AccessorType a
407407

408408
using (TextReader textReader = GetValue<TextReader>(reader, 1, accessorType))
409409
{
410-
Assert.Equal(textReader.ReadToEnd(), string.Empty);
410+
Assert.Equal(textReader.ReadToEnd(), string.Empty);
411411
}
412412

413413
using (Stream stream = GetValue<Stream>(reader, 2, accessorType))
@@ -420,6 +420,12 @@ public static void NullStreamProperties(CommandBehavior behavior, AccessorType a
420420

421421
}
422422

423+
private static async Task<SqlDataReader> ExecuteReader(SqlCommand command, CommandBehavior behavior, bool isExecuteAsync)
424+
=> isExecuteAsync ? await command.ExecuteReaderAsync(behavior) : command.ExecuteReader(behavior);
425+
426+
private static async Task<bool> Read(SqlDataReader reader, bool isExecuteAsync)
427+
=> isExecuteAsync ? await reader.ReadAsync() : reader.Read();
428+
423429
public static IEnumerable<object[]> GetCommandBehaviourAndAccessorTypes()
424430
{
425431
foreach (CommandBehavior behavior in new CommandBehavior[] { CommandBehavior.Default, CommandBehavior.SequentialAccess })
@@ -431,10 +437,13 @@ public static IEnumerable<object[]> GetCommandBehaviourAndAccessorTypes()
431437
}
432438
}
433439

434-
public static IEnumerable<object[]> GetCommandBehaviours()
440+
public static IEnumerable<object[]> GetCommandBehavioursAndIsAsync()
435441
{
436-
yield return new object[] { CommandBehavior.Default };
437-
yield return new object[] { CommandBehavior.SequentialAccess };
442+
foreach (CommandBehavior behavior in new CommandBehavior[] { CommandBehavior.Default, CommandBehavior.SequentialAccess })
443+
{
444+
yield return new object[] { behavior, true };
445+
yield return new object[] { behavior, false };
446+
}
438447
}
439448

440449
public enum AccessorType

0 commit comments

Comments
 (0)