@@ -164,6 +164,11 @@ public class Order : Entity
164164
165165 [ Field ( Precision = 10 , Scale = 0 ) ]
166166 public decimal Count { get ; set ; }
167+
168+ public Order ( Session session )
169+ : base ( session )
170+ {
171+ }
167172 }
168173}
169174
@@ -173,7 +178,7 @@ public class IssueJira0761_ReadingAvgAndSumByDecimalField : AutoBuildTest
173178 {
174179 private const int OrderCount = 100 ;
175180
176- private Session globalSession ;
181+ protected override bool InitGlobalSession => true ;
177182
178183 protected override void CheckRequirements ( ) => Require . ProviderIs ( StorageProvider . SqlServer | StorageProvider . PostgreSql ) ;
179184
@@ -187,11 +192,8 @@ protected override DomainConfiguration BuildConfiguration()
187192
188193 protected override void PopulateData ( )
189194 {
190- var sAndT = CreateSessionAndTransaction ( ) ;
191- globalSession = sAndT . Item1 ;
192-
193195 for ( var i = 0 ; i < OrderCount ; i ++ ) {
194- _ = new Order ( ) {
196+ _ = new Order ( GlobalSession ) {
195197 Sum = ( i % 2 == 0 ) ? 100000000000000000000000000.11m : 100000000000000000000000000.12m ,
196198 Sum2 = 100000000000000000000000000.3m ,
197199 Sum3 = 10000000000000000000000000.33m ,
@@ -207,31 +209,31 @@ protected override void PopulateData()
207209 }
208210
209211 foreach ( var i in Enumerable . Range ( 1 , 1000 ) ) {
210- _ = new ValueByEntityRefCase ( globalSession ) {
211- Ref = new DirectFieldValueCase ( globalSession ) {
212+ _ = new ValueByEntityRefCase ( GlobalSession ) {
213+ Ref = new DirectFieldValueCase ( GlobalSession ) {
212214 Accepted = 163767
213215 }
214216 } ;
215217
216- _ = new KeyValueByEntityRefCase ( globalSession ) {
217- Ref = new KeyExpressionCase ( globalSession , 163767 + i )
218+ _ = new KeyValueByEntityRefCase ( GlobalSession ) {
219+ Ref = new KeyExpressionCase ( GlobalSession , 163767 + i )
218220 } ;
219221
220- _ = new DecimalValueStructureEntityByRefCase ( globalSession ) {
221- Ref = new DecimalValueStructureCase ( globalSession ) {
222- Struct = new DecimalValueStructure ( globalSession ) {
222+ _ = new DecimalValueStructureEntityByRefCase ( GlobalSession ) {
223+ Ref = new DecimalValueStructureCase ( GlobalSession ) {
224+ Struct = new DecimalValueStructure ( GlobalSession ) {
223225 Value = 163767 ,
224226 Code = i
225227 }
226228 }
227229 } ;
228230 }
229231
230- globalSession . SaveChanges ( ) ;
232+ GlobalSession . SaveChanges ( ) ;
231233
232234#if DEBUG
233235 // just to keep data in database
234- sAndT . Item2 . Complete ( ) ;
236+ GlobalTransaction . Complete ( ) ;
235237#endif
236238 }
237239
@@ -240,43 +242,43 @@ protected override void PopulateData()
240242 [ Test ]
241243 public void AverageComplexTest ( )
242244 {
243- var queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum ) ;
245+ var queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum ) ;
244246 var fraction = queryResult - Math . Floor ( queryResult ) ;
245247 Assert . That ( fraction , Is . EqualTo ( 0.11m ) . Or . EqualTo ( 0.12m ) ) ;
246248
247- queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum2 ) ;
249+ queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum2 ) ;
248250 fraction = queryResult - Math . Floor ( queryResult ) ;
249251 Assert . That ( fraction , Is . EqualTo ( 0.3m ) ) ;
250252
251- queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum3 ) ;
253+ queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum3 ) ;
252254 fraction = queryResult - Math . Floor ( queryResult ) ;
253255 Assert . That ( fraction , Is . EqualTo ( 0.33m ) ) ;
254256
255- queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum4 ) ;
257+ queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum4 ) ;
256258 fraction = queryResult - Math . Floor ( queryResult ) ;
257259 Assert . That ( fraction , Is . EqualTo ( 0.333m ) ) ;
258260
259- queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum5 ) ;
261+ queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum5 ) ;
260262 fraction = queryResult - Math . Floor ( queryResult ) ;
261263 Assert . That ( fraction , Is . EqualTo ( 0.3333m ) ) ;
262264
263- queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum6 ) ;
265+ queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum6 ) ;
264266 fraction = queryResult - Math . Floor ( queryResult ) ;
265267 Assert . That ( fraction , Is . EqualTo ( 0.33333m ) ) ;
266268
267- queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum7 ) ;
269+ queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum7 ) ;
268270 fraction = queryResult - Math . Floor ( queryResult ) ;
269271 Assert . That ( fraction , Is . EqualTo ( 0.333333m ) ) ;
270272
271- queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum8 ) ;
273+ queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum8 ) ;
272274 fraction = queryResult - Math . Floor ( queryResult ) ;
273275 Assert . That ( fraction , Is . EqualTo ( 0.3333333m ) ) ;
274276
275- queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum9 ) ;
277+ queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum9 ) ;
276278 fraction = queryResult - Math . Floor ( queryResult ) ;
277279 Assert . That ( fraction , Is . EqualTo ( 0.33333333m ) ) ;
278280
279- queryResult = globalSession . Query . All < Order > ( ) . Average ( o => o . Sum10 ) ;
281+ queryResult = GlobalSession . Query . All < Order > ( ) . Average ( o => o . Sum10 ) ;
280282 fraction = queryResult - Math . Floor ( queryResult ) ;
281283 Assert . That ( fraction , Is . EqualTo ( 0.333333333m ) ) ;
282284 }
@@ -332,10 +334,10 @@ public void AvgDecimalValueStructureEntityByRefCase()
332334 [ Test ]
333335 public void AvgDecimalExpressionInSourceExpressionsCase ( )
334336 {
335- var results = globalSession . Query . All < DirectFieldValueCase > ( )
337+ var results = GlobalSession . Query . All < DirectFieldValueCase > ( )
336338 . GroupBy ( e => e . Id , e => new { Split = e . Accepted * 0.01M } )
337339 . Select ( g => g . Select ( x => x . Split ) . Distinct ( ) . Average ( ) ) . ToList ( ) ;
338- var localResults = globalSession . Query . All < DirectFieldValueCase > ( ) . AsEnumerable ( )
340+ var localResults = GlobalSession . Query . All < DirectFieldValueCase > ( ) . AsEnumerable ( )
339341 . GroupBy ( e => e . Id , e => new { Split = e . Accepted * 0.01M } )
340342 . Select ( g => g . Select ( x => x . Split ) . Distinct ( ) . Average ( ) ) . ToList ( ) ;
341343
@@ -345,16 +347,16 @@ public void AvgDecimalExpressionInSourceExpressionsCase()
345347
346348 private void TestAverage < TEntity > ( Expression < Func < TEntity , decimal > > selector ) where TEntity : Entity
347349 {
348- var results = globalSession . Query . All < TEntity > ( ) . Average ( selector ) ;
349- var localResults = globalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Average ( selector . Compile ( ) ) ;
350+ var results = GlobalSession . Query . All < TEntity > ( ) . Average ( selector ) ;
351+ var localResults = GlobalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Average ( selector . Compile ( ) ) ;
350352 Assert . That ( results , Is . EqualTo ( localResults ) , $ "Failed on Average({ selector } )") ;
351353
352- results = globalSession . Query . All < TEntity > ( ) . Select ( selector ) . Average ( ) ;
353- localResults = globalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Select ( selector . Compile ( ) ) . Average ( ) ;
354+ results = GlobalSession . Query . All < TEntity > ( ) . Select ( selector ) . Average ( ) ;
355+ localResults = GlobalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Select ( selector . Compile ( ) ) . Average ( ) ;
354356 Assert . That ( results , Is . EqualTo ( localResults ) , $ "Failed on Select({ selector } ).Average()") ;
355357
356- results = globalSession . Query . All < TEntity > ( ) . Select ( selector ) . Distinct ( ) . Average ( ) ;
357- localResults = globalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Select ( selector . Compile ( ) ) . Distinct ( ) . Average ( ) ;
358+ results = GlobalSession . Query . All < TEntity > ( ) . Select ( selector ) . Distinct ( ) . Average ( ) ;
359+ localResults = GlobalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Select ( selector . Compile ( ) ) . Distinct ( ) . Average ( ) ;
358360 Assert . That ( results , Is . EqualTo ( localResults ) , $ "Failed on Select({ selector } ).Distinct().Average()") ;
359361 }
360362
@@ -367,44 +369,44 @@ public void SumComplexTest()
367369 {
368370 Require . ProviderIs ( StorageProvider . SqlServer , " MS SQL Server has scale reduction algorithm, PgSql doesn't" ) ;
369371
370- var queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum ) ;
371- var localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum ) ;
372+ var queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum ) ;
373+ var localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum ) ;
372374 Assert . That ( queryResult , Is . EqualTo ( localResult + 3 ) ) ;
373375
374- queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum2 ) ;
375- localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum2 ) ;
376+ queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum2 ) ;
377+ localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum2 ) ;
376378 Assert . That ( queryResult , Is . EqualTo ( localResult + 6 ) ) ;
377379
378- queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum3 ) ;
379- localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum3 ) ;
380+ queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum3 ) ;
381+ localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum3 ) ;
380382 Assert . That ( queryResult , Is . EqualTo ( localResult + 0.6m ) ) ;
381383
382- queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum4 ) ;
383- localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum4 ) ;
384+ queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum4 ) ;
385+ localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum4 ) ;
384386 Assert . That ( queryResult , Is . EqualTo ( localResult ) ) ;
385387
386- queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum5 ) ;
387- localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum5 ) ;
388+ queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum5 ) ;
389+ localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum5 ) ;
388390 Assert . That ( queryResult , Is . EqualTo ( localResult ) ) ;
389391
390- queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum6 ) ;
391- localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum6 ) ;
392+ queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum6 ) ;
393+ localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum6 ) ;
392394 Assert . That ( queryResult , Is . EqualTo ( localResult ) ) ;
393395
394- queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum7 ) ;
395- localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum7 ) ;
396+ queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum7 ) ;
397+ localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum7 ) ;
396398 Assert . That ( queryResult , Is . EqualTo ( localResult ) ) ;
397399
398- queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum8 ) ;
399- localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum8 ) ;
400+ queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum8 ) ;
401+ localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum8 ) ;
400402 Assert . That ( queryResult , Is . EqualTo ( localResult ) ) ;
401403
402- queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum9 ) ;
403- localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum9 ) ;
404+ queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum9 ) ;
405+ localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum9 ) ;
404406 Assert . That ( queryResult , Is . EqualTo ( localResult ) ) ;
405407
406- queryResult = globalSession . Query . All < Order > ( ) . Sum ( o => o . Sum10 ) ;
407- localResult = globalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum10 ) ;
408+ queryResult = GlobalSession . Query . All < Order > ( ) . Sum ( o => o . Sum10 ) ;
409+ localResult = GlobalSession . Query . All < Order > ( ) . ToArray ( ) . Sum ( o => o . Sum10 ) ;
408410 Assert . That ( queryResult , Is . EqualTo ( localResult ) ) ;
409411 }
410412
@@ -459,10 +461,10 @@ public void SumDecimalValueStructureEntityByRefCase()
459461 [ Test ]
460462 public void SumDecimalExpressionInSourceExpressionsCase ( )
461463 {
462- var results = globalSession . Query . All < DirectFieldValueCase > ( )
464+ var results = GlobalSession . Query . All < DirectFieldValueCase > ( )
463465 . GroupBy ( e => e . Id , e => new { Split = e . Accepted * 0.01M } )
464466 . Select ( g => g . Select ( x => x . Split ) . Distinct ( ) . Sum ( ) ) . ToList ( ) ;
465- var localResults = globalSession . Query . All < DirectFieldValueCase > ( ) . AsEnumerable ( )
467+ var localResults = GlobalSession . Query . All < DirectFieldValueCase > ( ) . AsEnumerable ( )
466468 . GroupBy ( e => e . Id , e => new { Split = e . Accepted * 0.01M } )
467469 . Select ( g => g . Select ( x => x . Split ) . Distinct ( ) . Sum ( ) ) . ToList ( ) ;
468470
@@ -472,16 +474,16 @@ public void SumDecimalExpressionInSourceExpressionsCase()
472474
473475 private void TestSum < TEntity > ( Expression < Func < TEntity , decimal > > selector ) where TEntity : Entity
474476 {
475- var results = globalSession . Query . All < TEntity > ( ) . Sum ( selector ) ;
476- var localResults = globalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Sum ( selector . Compile ( ) ) ;
477+ var results = GlobalSession . Query . All < TEntity > ( ) . Sum ( selector ) ;
478+ var localResults = GlobalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Sum ( selector . Compile ( ) ) ;
477479 Assert . That ( results , Is . EqualTo ( localResults ) , $ "Failed on Sum({ selector } )") ;
478480
479- results = globalSession . Query . All < TEntity > ( ) . Select ( selector ) . Sum ( ) ;
480- localResults = globalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Select ( selector . Compile ( ) ) . Sum ( ) ;
481+ results = GlobalSession . Query . All < TEntity > ( ) . Select ( selector ) . Sum ( ) ;
482+ localResults = GlobalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Select ( selector . Compile ( ) ) . Sum ( ) ;
481483 Assert . That ( results , Is . EqualTo ( localResults ) , $ "Failed on Select({ selector } ).Sum()") ;
482484
483- results = globalSession . Query . All < TEntity > ( ) . Select ( selector ) . Distinct ( ) . Sum ( ) ;
484- localResults = globalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Select ( selector . Compile ( ) ) . Distinct ( ) . Sum ( ) ;
485+ results = GlobalSession . Query . All < TEntity > ( ) . Select ( selector ) . Distinct ( ) . Sum ( ) ;
486+ localResults = GlobalSession . Query . All < TEntity > ( ) . AsEnumerable ( ) . Select ( selector . Compile ( ) ) . Distinct ( ) . Sum ( ) ;
485487 Assert . That ( results , Is . EqualTo ( localResults ) , $ "Failed on Select({ selector } ).Distinct().Sum()") ;
486488 }
487489
0 commit comments