@@ -191,6 +191,46 @@ public void TestSqlConnectionExecuteQueryMultipleForExtractWithNormalStatementFo
191191 }
192192 }
193193
194+ [ TestMethod ]
195+ public void TestSqlConnectionExecuteQueryMultipleForExtractWithoutParametersAndWithManualNextResultCall ( )
196+ {
197+ // Setup
198+ var tables = Helper . CreateIdentityTables ( 10 ) ;
199+
200+ using ( var connection = new SqlConnection ( Database . ConnectionStringForRepoDb ) )
201+ {
202+ // Act
203+ connection . InsertAll ( tables ) ;
204+
205+ // Act
206+ using ( var result = connection . ExecuteQueryMultiple ( @"SELECT TOP 1 * FROM [sc].[IdentityTable];
207+ SELECT TOP 2 * FROM [sc].[IdentityTable];
208+ SELECT TOP 3 * FROM [sc].[IdentityTable];
209+ SELECT TOP 4 * FROM [sc].[IdentityTable];
210+ SELECT TOP 5 * FROM [sc].[IdentityTable];" ) )
211+ {
212+ while ( result . Position >= 0 )
213+ {
214+ // Index
215+ var index = result . Position + 1 ;
216+
217+ // Act
218+ var items = result . Extract < IdentityTable > ( false ) ;
219+ result . NextResult ( ) ;
220+
221+ // Assert
222+ Assert . AreEqual ( index , items . Count ( ) ) ;
223+
224+ // Assert
225+ for ( var c = 0 ; c < index ; c ++ )
226+ {
227+ Helper . AssertPropertiesEquality ( tables . ElementAt ( c ) , items . ElementAt ( c ) ) ;
228+ }
229+ }
230+ }
231+ }
232+ }
233+
194234 #endregion
195235
196236 #region Extract<dynamic>
@@ -355,6 +395,46 @@ public void TestSqlConnectionExecuteQueryMultipleForExtractAsDynamicWithNormalSt
355395 }
356396 }
357397
398+ [ TestMethod ]
399+ public void TestSqlConnectionExecuteQueryMultipleForExtractAsDynamicWithoutParametersAndWithManualNextResultCall ( )
400+ {
401+ // Setup
402+ var tables = Helper . CreateIdentityTables ( 10 ) ;
403+
404+ using ( var connection = new SqlConnection ( Database . ConnectionStringForRepoDb ) )
405+ {
406+ // Act
407+ connection . InsertAll ( tables ) ;
408+
409+ // Act
410+ using ( var result = connection . ExecuteQueryMultiple ( @"SELECT TOP 1 * FROM [sc].[IdentityTable];
411+ SELECT TOP 2 * FROM [sc].[IdentityTable];
412+ SELECT TOP 3 * FROM [sc].[IdentityTable];
413+ SELECT TOP 4 * FROM [sc].[IdentityTable];
414+ SELECT TOP 5 * FROM [sc].[IdentityTable];" ) )
415+ {
416+ while ( result . Position >= 0 )
417+ {
418+ // Index
419+ var index = result . Position + 1 ;
420+
421+ // Act
422+ var items = result . Extract ( false ) ;
423+ result . NextResult ( ) ;
424+
425+ // Assert
426+ Assert . AreEqual ( index , items . Count ( ) ) ;
427+
428+ // Assert
429+ for ( var c = 0 ; c < index ; c ++ )
430+ {
431+ Helper . AssertMembersEquality ( tables . ElementAt ( c ) , ( ExpandoObject ) items . ElementAt ( c ) ) ;
432+ }
433+ }
434+ }
435+ }
436+ }
437+
358438 #endregion
359439
360440 #endregion
@@ -524,6 +604,46 @@ public void TestSqlConnectionExecuteQueryMultipleAsyncForExtractAsyncWithNormalS
524604 }
525605 }
526606
607+ [ TestMethod ]
608+ public void TestSqlConnectionExecuteQueryAsyncMultipleForExtractAsyncWithoutParametersAndWithManualNextResultCall ( )
609+ {
610+ // Setup
611+ var tables = Helper . CreateIdentityTables ( 10 ) ;
612+
613+ using ( var connection = new SqlConnection ( Database . ConnectionStringForRepoDb ) )
614+ {
615+ // Act
616+ connection . InsertAll ( tables ) ;
617+
618+ // Act
619+ using ( var result = connection . ExecuteQueryMultipleAsync ( @"SELECT TOP 1 * FROM [sc].[IdentityTable];
620+ SELECT TOP 2 * FROM [sc].[IdentityTable];
621+ SELECT TOP 3 * FROM [sc].[IdentityTable];
622+ SELECT TOP 4 * FROM [sc].[IdentityTable];
623+ SELECT TOP 5 * FROM [sc].[IdentityTable];" ) . Result )
624+ {
625+ while ( result . Position >= 0 )
626+ {
627+ // Index
628+ var index = result . Position + 1 ;
629+
630+ // Act
631+ var items = result . ExtractAsync < IdentityTable > ( false ) . Result ;
632+ result . NextResultAsync ( ) . Wait ( ) ;
633+
634+ // Assert
635+ Assert . AreEqual ( index , items . Count ( ) ) ;
636+
637+ // Assert
638+ for ( var c = 0 ; c < index ; c ++ )
639+ {
640+ Helper . AssertPropertiesEquality ( tables . ElementAt ( c ) , items . ElementAt ( c ) ) ;
641+ }
642+ }
643+ }
644+ }
645+ }
646+
527647 #endregion
528648
529649 #region ExtractAsync<dynamic>
@@ -688,6 +808,46 @@ public void TestSqlConnectionExecuteQueryMultipleAsyncForExtractAsyncAsDynamicWi
688808 }
689809 }
690810
811+ [ TestMethod ]
812+ public void TestSqlConnectionExecuteQueryMultipleAsyncForExtractAsyncAsDynamicWithoutParametersAndWithManualNextResultCall ( )
813+ {
814+ // Setup
815+ var tables = Helper . CreateIdentityTables ( 10 ) ;
816+
817+ using ( var connection = new SqlConnection ( Database . ConnectionStringForRepoDb ) )
818+ {
819+ // Act
820+ connection . InsertAll ( tables ) ;
821+
822+ // Act
823+ using ( var result = connection . ExecuteQueryMultipleAsync ( @"SELECT TOP 1 * FROM [sc].[IdentityTable];
824+ SELECT TOP 2 * FROM [sc].[IdentityTable];
825+ SELECT TOP 3 * FROM [sc].[IdentityTable];
826+ SELECT TOP 4 * FROM [sc].[IdentityTable];
827+ SELECT TOP 5 * FROM [sc].[IdentityTable];" ) . Result )
828+ {
829+ while ( result . Position >= 0 )
830+ {
831+ // Index
832+ var index = result . Position + 1 ;
833+
834+ // Act
835+ var items = result . ExtractAsync ( false ) . Result ;
836+ result . NextResultAsync ( ) . Wait ( ) ;
837+
838+ // Assert
839+ Assert . AreEqual ( index , items . Count ( ) ) ;
840+
841+ // Assert
842+ for ( var c = 0 ; c < index ; c ++ )
843+ {
844+ Helper . AssertMembersEquality ( tables . ElementAt ( c ) , ( ExpandoObject ) items . ElementAt ( c ) ) ;
845+ }
846+ }
847+ }
848+ }
849+ }
850+
691851 #endregion
692852
693853 #endregion
@@ -805,6 +965,39 @@ public void TestSqlConnectionExecuteQueryMultipleForScalarAsTypedResultWithSimpl
805965 }
806966 }
807967
968+ [ TestMethod ]
969+ public void TestSqlConnectionExecuteQueryMultipleForScalarAsTypedResultWithoutParametersAndWithManualNextResultCall ( )
970+ {
971+ using ( var connection = new SqlConnection ( Database . ConnectionStringForRepoDb ) )
972+ {
973+ // Act
974+ using ( var result = connection . ExecuteQueryMultiple ( @"SELECT GETUTCDATE();
975+ SELECT (2 * 7);
976+ SELECT 'USER';" ) )
977+ {
978+ // Index
979+ var index = result . Position + 1 ;
980+
981+ // Assert
982+ var value1 = result . Scalar < DateTime > ( false ) ;
983+ Assert . IsNotNull ( value1 ) ;
984+ Assert . AreEqual ( typeof ( DateTime ) , value1 . GetType ( ) ) ;
985+
986+ // Assert
987+ result . NextResult ( ) ;
988+ var value2 = result . Scalar < int > ( false ) ;
989+ Assert . IsNotNull ( value2 ) ;
990+ Assert . AreEqual ( 14 , value2 ) ;
991+
992+ // Assert
993+ result . NextResult ( ) ;
994+ var value3 = result . Scalar < string > ( false ) ;
995+ Assert . IsNotNull ( value3 ) ;
996+ Assert . AreEqual ( "USER" , value3 ) ;
997+ }
998+ }
999+ }
1000+
8081001 #endregion
8091002
8101003 #region Scalar<object>
@@ -918,6 +1111,39 @@ public void TestSqlConnectionExecuteQueryMultipleForScalarWithSimpleScalaredValu
9181111 }
9191112 }
9201113
1114+ [ TestMethod ]
1115+ public void TestSqlConnectionExecuteQueryMultipleForScalarWithoutParametersAndWithManualNextResultCall ( )
1116+ {
1117+ using ( var connection = new SqlConnection ( Database . ConnectionStringForRepoDb ) )
1118+ {
1119+ // Act
1120+ using ( var result = connection . ExecuteQueryMultiple ( @"SELECT GETUTCDATE();
1121+ SELECT (2 * 7);
1122+ SELECT 'USER';" ) )
1123+ {
1124+ // Index
1125+ var index = result . Position + 1 ;
1126+
1127+ // Assert
1128+ var value1 = result . Scalar ( false ) ;
1129+ Assert . IsNotNull ( value1 ) ;
1130+ Assert . AreEqual ( typeof ( DateTime ) , value1 . GetType ( ) ) ;
1131+
1132+ // Assert
1133+ result . NextResult ( ) ;
1134+ var value2 = result . Scalar ( false ) ;
1135+ Assert . IsNotNull ( value2 ) ;
1136+ Assert . AreEqual ( 14 , value2 ) ;
1137+
1138+ // Assert
1139+ result . NextResult ( ) ;
1140+ var value3 = result . Scalar ( false ) ;
1141+ Assert . IsNotNull ( value3 ) ;
1142+ Assert . AreEqual ( "USER" , value3 ) ;
1143+ }
1144+ }
1145+ }
1146+
9211147 #endregion
9221148
9231149 #endregion
@@ -1035,6 +1261,39 @@ public void TestSqlConnectionExecuteQueryMultipleAsyncForScalarAsTypedResultWith
10351261 }
10361262 }
10371263
1264+ [ TestMethod ]
1265+ public void TestSqlConnectionExecuteQueryMultipleAsyncForScalarAsTypedResultWithoutParametersAndWithManualNextResultCall ( )
1266+ {
1267+ using ( var connection = new SqlConnection ( Database . ConnectionStringForRepoDb ) )
1268+ {
1269+ // Act
1270+ using ( var result = connection . ExecuteQueryMultipleAsync ( @"SELECT GETUTCDATE();
1271+ SELECT (2 * 7);
1272+ SELECT 'USER';" ) . Result )
1273+ {
1274+ // Index
1275+ var index = result . Position + 1 ;
1276+
1277+ // Assert
1278+ var value1 = result . Scalar < DateTime > ( false ) ;
1279+ Assert . IsNotNull ( value1 ) ;
1280+ Assert . AreEqual ( typeof ( DateTime ) , value1 . GetType ( ) ) ;
1281+
1282+ // Assert
1283+ result . NextResult ( ) ;
1284+ var value2 = result . Scalar < int > ( false ) ;
1285+ Assert . IsNotNull ( value2 ) ;
1286+ Assert . AreEqual ( 14 , value2 ) ;
1287+
1288+ // Assert
1289+ result . NextResult ( ) ;
1290+ var value3 = result . Scalar < string > ( false ) ;
1291+ Assert . IsNotNull ( value3 ) ;
1292+ Assert . AreEqual ( "USER" , value3 ) ;
1293+ }
1294+ }
1295+ }
1296+
10381297 #endregion
10391298
10401299 #region ScalarAsync<object>
@@ -1148,6 +1407,39 @@ public void TestSqlConnectionExecuteQueryMultipleAsyncForScalarWithSimpleScalare
11481407 }
11491408 }
11501409
1410+ [ TestMethod ]
1411+ public void TestSqlConnectionExecuteQueryMultipleAsyncForScalarWithoutParametersAndWithManualNextResultCall ( )
1412+ {
1413+ using ( var connection = new SqlConnection ( Database . ConnectionStringForRepoDb ) )
1414+ {
1415+ // Act
1416+ using ( var result = connection . ExecuteQueryMultipleAsync ( @"SELECT GETUTCDATE();
1417+ SELECT (2 * 7);
1418+ SELECT 'USER';" ) . Result )
1419+ {
1420+ // Index
1421+ var index = result . Position + 1 ;
1422+
1423+ // Assert
1424+ var value1 = result . ScalarAsync ( false ) . Result ;
1425+ Assert . IsNotNull ( value1 ) ;
1426+ Assert . AreEqual ( typeof ( DateTime ) , value1 . GetType ( ) ) ;
1427+
1428+ // Assert
1429+ result . NextResultAsync ( ) . Wait ( ) ;
1430+ var value2 = result . ScalarAsync ( false ) . Result ;
1431+ Assert . IsNotNull ( value2 ) ;
1432+ Assert . AreEqual ( 14 , value2 ) ;
1433+
1434+ // Assert
1435+ result . NextResultAsync ( ) . Wait ( ) ;
1436+ var value3 = result . ScalarAsync ( false ) . Result ;
1437+ Assert . IsNotNull ( value3 ) ;
1438+ Assert . AreEqual ( "USER" , value3 ) ;
1439+ }
1440+ }
1441+ }
1442+
11511443 #endregion
11521444
11531445 #endregion
0 commit comments