@@ -107,13 +107,8 @@ public void EnumerationOutsideTransactionTest()
107107 using ( var transaction = session . OpenTransaction ( ) ) {
108108 result = session . Query . Execute ( q => q . All < Order > ( ) ) ;
109109 }
110- if ( SupportsMars ( ) ) {
111- var ex = Assert . Throws < StorageException > ( ( ) => result . ToList ( ) ) ;
112- Assert . That ( ex . InnerException , Is . TypeOf < InvalidOperationException > ( ) ) ;
113- }
114- else {
115- _ = Assert . Throws < InvalidOperationException > ( ( ) => result . ToList ( ) ) ;
116- }
110+
111+ _ = Assert . Throws < InvalidOperationException > ( ( ) => result . ToList ( ) ) ;
117112 }
118113 }
119114
@@ -125,13 +120,8 @@ public async Task EnumerationOutsideTransactionAsyncTest()
125120 using ( var transaction = session . OpenTransaction ( ) ) {
126121 result = await session . Query . ExecuteAsync ( q => q . All < Order > ( ) ) ;
127122 }
128- if ( SupportsMars ( ) ) {
129- var ex = Assert . Throws < StorageException > ( ( ) => result . ToList ( ) ) ;
130- Assert . That ( ex . InnerException , Is . TypeOf < InvalidOperationException > ( ) ) ;
131- }
132- else {
133- _ = Assert . Throws < InvalidOperationException > ( ( ) => result . ToList ( ) ) ;
134- }
123+
124+ _ = Assert . Throws < InvalidOperationException > ( ( ) => result . ToList ( ) ) ;
135125 }
136126 }
137127
@@ -165,13 +155,8 @@ public void EnumerationOutsideTransactionClientProfileTest()
165155 using ( var transaction = session . OpenTransaction ( ) ) {
166156 result = session . Query . Execute ( q => q . All < Order > ( ) ) ;
167157 }
168- if ( SupportsMars ( ) ) {
169- var ex = Assert . Throws < StorageException > ( ( ) => result . ToList ( ) ) ;
170- Assert . That ( ex . InnerException , Is . TypeOf < InvalidOperationException > ( ) ) ;
171- }
172- else {
173- _ = result . ToList ( ) ;
174- }
158+
159+ _ = Assert . Throws < InvalidOperationException > ( ( ) => result . ToList ( ) ) ;
175160 }
176161 }
177162
@@ -184,13 +169,8 @@ public async Task EnumerationOutsideTransactionClientProfileAsyncTest()
184169 using ( var transaction = session . OpenTransaction ( ) ) {
185170 result = await session . Query . ExecuteAsync ( q => q . All < Order > ( ) ) ;
186171 }
187- if ( SupportsMars ( ) ) {
188- var ex = Assert . Throws < StorageException > ( ( ) => result . ToList ( ) ) ;
189- Assert . That ( ex . InnerException , Is . TypeOf < InvalidOperationException > ( ) ) ;
190- }
191- else {
192- _ = result . ToList ( ) ;
193- }
172+
173+ _ = Assert . Throws < InvalidOperationException > ( ( ) => result . ToList ( ) ) ;
194174 }
195175 }
196176
@@ -202,13 +182,8 @@ public void EnumerationOutsideSessionTest()
202182 using ( var transaction = session . OpenTransaction ( ) ) {
203183 result = session . Query . Execute ( q => q . All < Order > ( ) ) ;
204184 }
205- if ( SupportsMars ( ) ) {
206- var ex = Assert . Throws < StorageException > ( ( ) => result . ToList ( ) ) ;
207- Assert . That ( ex . InnerException , Is . TypeOf < InvalidOperationException > ( ) ) ;
208- }
209- else {
210- var ex = Assert . Throws < ObjectDisposedException > ( ( ) => result . ToList ( ) ) ;
211- }
185+
186+ _ = Assert . Throws < InvalidOperationException > ( ( ) => result . ToList ( ) ) ;
212187 }
213188
214189 [ Test ]
@@ -220,13 +195,7 @@ public async Task EnumerationOutsideSessionAsyncTest()
220195 result = await session . Query . ExecuteAsync ( q => q . All < Order > ( ) ) ;
221196 }
222197
223- if ( SupportsMars ( ) ) {
224- var ex = Assert . Throws < StorageException > ( ( ) => result . ToList ( ) ) ;
225- Assert . That ( ex . InnerException , Is . TypeOf < InvalidOperationException > ( ) ) ;
226- }
227- else {
228- var ex = Assert . Throws < ObjectDisposedException > ( ( ) => result . ToList ( ) ) ;
229- }
198+ _ = Assert . Throws < InvalidOperationException > ( ( ) => result . ToList ( ) ) ;
230199 }
231200
232201 [ Test ]
@@ -321,29 +290,49 @@ public async Task EnumerationInInnerVoidTransactionAsyncTest()
321290 [ Test ]
322291 public void EnumerationInOuterTransactionAfterInnerRollbackTest ( )
323292 {
293+ // sql server does not pull results to memory in client library
294+ var directReader = StorageProviderInfo . Instance . CheckProviderIs ( StorageProvider . SqlServer ) ;
295+
324296 using ( var session = Domain . OpenSession ( ) ) {
325297 QueryResult < Order > result ;
326- using ( var outerTx = session . OpenTransaction ( ) ) {
327- using ( var innerTx = session . OpenTransaction ( TransactionOpenMode . New ) ) {
328- result = session . Query . Execute ( q => q . All < Order > ( ) ) ;
329- }
330- var ex = Assert . Throws < StorageException > ( ( ) => result . ToList ( ) ) ;
331- Assert . That ( ex . InnerException , Is . TypeOf < InvalidOperationException > ( ) ) ;
298+ // no using intentionally
299+ var outerTx = session . OpenTransaction ( ) ;
300+ var innerTx = session . OpenTransaction ( TransactionOpenMode . New ) ;
301+
302+ result = session . Query . Execute ( q => q . All < Order > ( ) ) ;
303+
304+ if ( directReader ) {
305+ _ = Assert . Throws < StorageException > ( ( ) => innerTx . Dispose ( ) ) ;
306+ _ = Assert . Throws < StorageException > ( ( ) => outerTx . Dispose ( ) ) ;
307+ }
308+ else {
309+ Assert . DoesNotThrow ( ( ) => innerTx . Dispose ( ) ) ;
310+ Assert . DoesNotThrow ( ( ) => outerTx . Dispose ( ) ) ;
332311 }
333312 }
334313 }
335314
336315 [ Test ]
337316 public async Task EnumerationInOuterTransactionAfterInnerRollbackAsyncTest ( )
338317 {
318+ // sql server does not pull results to memory in client library
319+ var directReader = StorageProviderInfo . Instance . CheckProviderIs ( StorageProvider . SqlServer ) ;
320+
339321 using ( var session = Domain . OpenSession ( ) ) {
340322 QueryResult < Order > result ;
341- using ( var outerTx = session . OpenTransaction ( ) ) {
342- using ( var innerTx = session . OpenTransaction ( TransactionOpenMode . New ) ) {
343- result = await session . Query . ExecuteAsync ( q => q . All < Order > ( ) ) ;
344- }
345- var ex = Assert . Throws < StorageException > ( ( ) => result . ToList ( ) ) ;
346- Assert . That ( ex . InnerException , Is . TypeOf < InvalidOperationException > ( ) ) ;
323+ // no using intentionally
324+ var outerTx = session . OpenTransaction ( ) ;
325+ var innerTx = session . OpenTransaction ( TransactionOpenMode . New ) ;
326+
327+ result = await session . Query . ExecuteAsync ( q => q . All < Order > ( ) ) ;
328+
329+ if ( directReader ) {
330+ _ = Assert . Throws < StorageException > ( ( ) => innerTx . Dispose ( ) ) ;
331+ _ = Assert . Throws < StorageException > ( ( ) => outerTx . Dispose ( ) ) ;
332+ }
333+ else {
334+ Assert . DoesNotThrow ( ( ) => innerTx . Dispose ( ) ) ;
335+ Assert . DoesNotThrow ( ( ) => outerTx . Dispose ( ) ) ;
347336 }
348337 }
349338 }
0 commit comments