Skip to content

Commit 761addf

Browse files
committed
Ignore or fix some async tests
1 parent bff9573 commit 761addf

1 file changed

Lines changed: 73 additions & 30 deletions

File tree

Orm/Xtensive.Orm.Tests/Storage/AsyncQueries/AsyncExtensionsTest.cs

Lines changed: 73 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,15 @@ public async Task AverageAsyncIntExtensionTest(bool isClientProfile)
8686
await using (OpenTransactionAsync(session, isClientProfile)) {
8787
var query = session.Query.All<StatRecord>().Select(stat => stat.IntFactor);
8888
var allFactors = (await query.ExecuteAsync()).ToList();
89-
Assert.AreEqual(allFactors.Average(), await query.AverageAsync());
89+
//"If Field is of an integer type, AVG is always rounded towards 0.
90+
// For instance, 6 non-null INT records with a sum of -11 yield an average of -1, not -2."
91+
// © Firebird documentation
92+
// Funny, isn't it?
93+
var expectedValue = (StorageProviderInfo.Instance.CheckProviderIs(StorageProvider.Firebird))
94+
? Math.Truncate(allFactors.Average())
95+
: allFactors.Average();
96+
97+
Assert.AreEqual(expectedValue, await query.AverageAsync());
9098
}
9199
}
92100

@@ -100,7 +108,7 @@ public async Task AverageAsyncIntOnEmptySequenceExtensionTest(bool isClientProfi
100108

101109
var emptyFactors = (await emptyQuery.ExecuteAsync()).ToList();
102110
Assert.AreEqual(0, emptyFactors.Count);
103-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
111+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
104112
}
105113
}
106114

@@ -113,7 +121,16 @@ public async Task AverageAsyncIntWithSelectorExtensionTest(bool isClientProfile)
113121
await using (OpenTransactionAsync(session, isClientProfile)) {
114122
var query = session.Query.All<StatRecord>();
115123
var allFactors = (await query.ExecuteAsync()).Select(stat => stat.IntFactor).ToList();
116-
Assert.AreEqual(allFactors.Average(), await query.AverageAsync(stat => stat.IntFactor));
124+
125+
//"If Field is of an integer type, AVG is always rounded towards 0.
126+
// For instance, 6 non-null INT records with a sum of -11 yield an average of -1, not -2."
127+
// © Firebird documentation
128+
// Funny, isn't it?
129+
var expectedValue = (StorageProviderInfo.Instance.CheckProviderIs(StorageProvider.Firebird))
130+
? Math.Truncate(allFactors.Average())
131+
: allFactors.Average();
132+
133+
Assert.AreEqual(expectedValue, await query.AverageAsync(stat => stat.IntFactor));
117134
}
118135
}
119136

@@ -127,7 +144,7 @@ public async Task AverageAsyncIntWithSelectorOnEmptySequenceExtensionTest(bool i
127144

128145
var emptyFactors = (await emptyQuery.ExecuteAsync()).Select(stat => stat.IntFactor).ToList();
129146
Assert.AreEqual(0, emptyFactors.Count);
130-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.IntFactor));
147+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.IntFactor));
131148
}
132149
}
133150

@@ -228,7 +245,16 @@ public async Task AverageAsyncLongExtensionTest(bool isClientProfile)
228245
await using (OpenTransactionAsync(session, isClientProfile)) {
229246
var query = session.Query.All<StatRecord>().Select(stat => stat.LongFactor);
230247
var allFactors = (await query.ExecuteAsync()).ToList();
231-
Assert.AreEqual(allFactors.Average(), await query.AverageAsync());
248+
249+
//"If Field is of an integer type, AVG is always rounded towards 0.
250+
// For instance, 6 non-null INT records with a sum of -11 yield an average of -1, not -2."
251+
// © Firebird documentation
252+
// Funny, isn't it?
253+
var expectedValue = (StorageProviderInfo.Instance.CheckProviderIs(StorageProvider.Firebird))
254+
? Math.Truncate(allFactors.Average())
255+
: allFactors.Average();
256+
257+
Assert.AreEqual(expectedValue, await query.AverageAsync());
232258
}
233259
}
234260

@@ -242,7 +268,7 @@ public async Task AverageAsyncLongOnEmptySequenceExtensionTest(bool isClientProf
242268

243269
var emptyFactors = (await emptyQuery.ExecuteAsync()).ToList();
244270
Assert.AreEqual(0, emptyFactors.Count);
245-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
271+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
246272
}
247273
}
248274

@@ -255,7 +281,16 @@ public async Task AverageAsyncLongWithSelectorExtensionTest(bool isClientProfile
255281
await using (OpenTransactionAsync(session, isClientProfile)) {
256282
var query = session.Query.All<StatRecord>();
257283
var allFactors = (await query.ExecuteAsync()).Select(stat => stat.LongFactor).ToList();
258-
Assert.AreEqual(allFactors.Average(), await query.AverageAsync(stat => stat.LongFactor));
284+
285+
//"If Field is of an integer type, AVG is always rounded towards 0.
286+
// For instance, 6 non-null INT records with a sum of -11 yield an average of -1, not -2."
287+
// © Firebird documentation
288+
// Funny, isn't it?
289+
var expectedValue = (StorageProviderInfo.Instance.CheckProviderIs(StorageProvider.Firebird))
290+
? Math.Truncate(allFactors.Average())
291+
: allFactors.Average();
292+
293+
Assert.AreEqual(expectedValue, await query.AverageAsync(stat => stat.LongFactor));
259294
}
260295
}
261296

@@ -269,7 +304,7 @@ public async Task AverageAsyncLongWithSelectorOnEmptySequenceExtensionTest(bool
269304

270305
var emptyFactors = (await emptyQuery.ExecuteAsync()).Select(stat => stat.LongFactor).ToList();
271306
Assert.AreEqual(0, emptyFactors.Count);
272-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.LongFactor));
307+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.LongFactor));
273308
}
274309
}
275310

@@ -384,7 +419,7 @@ public async Task AverageAsyncDoubleOnEmptySequenceExtensionTest(bool isClientPr
384419

385420
var emptyFactors = (await emptyQuery.ExecuteAsync()).ToList();
386421
Assert.AreEqual(0, emptyFactors.Count);
387-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
422+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
388423
}
389424
}
390425

@@ -411,7 +446,7 @@ public async Task AverageAsyncDoubleWithSelectorOnEmptySequenceExtensionTest(boo
411446

412447
var emptyFactors = (await emptyQuery.ExecuteAsync()).Select(stat => stat.DoubleFactor).ToList();
413448
Assert.AreEqual(0, emptyFactors.Count);
414-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.DoubleFactor));
449+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.DoubleFactor));
415450
}
416451
}
417452

@@ -526,7 +561,7 @@ public async Task AverageAsyncFloatOnEmptySequenceExtensionTest(bool isClientPro
526561

527562
var emptyFactors = (await emptyQuery.ExecuteAsync()).ToList();
528563
Assert.AreEqual(0, emptyFactors.Count);
529-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
564+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
530565
}
531566
}
532567

@@ -553,7 +588,7 @@ public async Task AverageAsyncFloatWithSelectorOnEmptySequenceExtensionTest(bool
553588

554589
var emptyFactors = (await emptyQuery.ExecuteAsync()).Select(stat => stat.FloatFactor).ToList();
555590
Assert.AreEqual(0, emptyFactors.Count);
556-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.FloatFactor));
591+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.FloatFactor));
557592
}
558593
}
559594

@@ -668,7 +703,7 @@ public async Task AverageAsyncDecimalOnEmptySequenceExtensionTest(bool isClientP
668703

669704
var emptyFactors = (await emptyQuery.ExecuteAsync()).ToList();
670705
Assert.AreEqual(0, emptyFactors.Count);
671-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
706+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync());
672707
}
673708
}
674709

@@ -695,7 +730,7 @@ public async Task AverageAsyncDecimalWithSelectorOnEmptySequenceExtensionTest(bo
695730

696731
var emptyFactors = (await emptyQuery.ExecuteAsync()).Select(stat => stat.DecimalFactor).ToList();
697732
Assert.AreEqual(0, emptyFactors.Count);
698-
Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.DecimalFactor));
733+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => emptyQuery.AverageAsync(stat => stat.DecimalFactor));
699734
}
700735
}
701736

@@ -867,7 +902,7 @@ public async Task FirstAsyncOnEmptySequenceExtensionTest(bool isClientProfile)
867902
await using var session = await OpenSessionAsync(Domain, isClientProfile);
868903
await using (OpenTransactionAsync(session, isClientProfile)) {
869904
var query = session.Query.All<Teacher>().Take(0);
870-
Assert.ThrowsAsync<InvalidOperationException>(() => query.FirstAsync());
905+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.FirstAsync());
871906
}
872907
}
873908

@@ -888,7 +923,7 @@ public async Task FirstAsyncWithPredicateOnEmptySequenceExtensionTest(bool isCli
888923
await using var session = await OpenSessionAsync(Domain, isClientProfile);
889924
await using (OpenTransactionAsync(session, isClientProfile)) {
890925
var query = session.Query.All<Teacher>();
891-
Assert.ThrowsAsync<InvalidOperationException>(() => query.FirstAsync(teacher => teacher.Id < 0));
926+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.FirstAsync(teacher => teacher.Id < 0));
892927
}
893928
}
894929

@@ -939,6 +974,7 @@ public async Task FirstOrDefaultAsyncWithPredicateOnEmptySequenceExtensionTest(b
939974
// Last
940975

941976
[Test, TestCase(true), TestCase(false)]
977+
[IgnoreIfGithubActions("LastAsync is not supported yet.")]
942978
public async Task LastAsyncExtensionTest(bool isClientProfile)
943979
{
944980
await using var session = await OpenSessionAsync(Domain, isClientProfile);
@@ -950,16 +986,18 @@ public async Task LastAsyncExtensionTest(bool isClientProfile)
950986
}
951987

952988
[Test, TestCase(true), TestCase(false)]
989+
[IgnoreIfGithubActions("LastAsync is not supported yet.")]
953990
public async Task LastAsyncOnEmptySequenceExtensionTest(bool isClientProfile)
954991
{
955992
await using var session = await OpenSessionAsync(Domain, isClientProfile);
956993
await using (OpenTransactionAsync(session, isClientProfile)) {
957994
var query = session.Query.All<Teacher>().Take(0);
958-
Assert.ThrowsAsync<InvalidOperationException>(() => query.LastAsync());
995+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.LastAsync());
959996
}
960997
}
961998

962999
[Test, TestCase(true), TestCase(false)]
1000+
[IgnoreIfGithubActions("LastAsync is not supported yet.")]
9631001
public async Task LastAsyncWithPredicateExtensionTest(bool isClientProfile)
9641002
{
9651003
await using var session = await OpenSessionAsync(Domain, isClientProfile);
@@ -971,18 +1009,20 @@ public async Task LastAsyncWithPredicateExtensionTest(bool isClientProfile)
9711009
}
9721010

9731011
[Test, TestCase(true), TestCase(false)]
1012+
[IgnoreIfGithubActions("LastAsync is not supported yet.")]
9741013
public async Task LastAsyncWithPredicateOnEmptySequenceExtensionTest(bool isClientProfile)
9751014
{
9761015
await using var session = await OpenSessionAsync(Domain, isClientProfile);
9771016
await using (OpenTransactionAsync(session, isClientProfile)) {
9781017
var query = session.Query.All<Teacher>();
979-
Assert.ThrowsAsync<InvalidOperationException>(() => query.LastAsync(teacher => teacher.Id < 0));
1018+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.LastAsync(teacher => teacher.Id < 0));
9801019
}
9811020
}
9821021

9831022
// LastOrDefault
9841023

9851024
[Test, TestCase(true), TestCase(false)]
1025+
[IgnoreIfGithubActions("LastOrDefaultAsync is not supported yet.")]
9861026
public async Task LastOrDefaultAsyncExtensionTest(bool isClientProfile)
9871027
{
9881028
await using var session = await OpenSessionAsync(Domain, isClientProfile);
@@ -994,6 +1034,7 @@ public async Task LastOrDefaultAsyncExtensionTest(bool isClientProfile)
9941034
}
9951035

9961036
[Test, TestCase(true), TestCase(false)]
1037+
[IgnoreIfGithubActions("LastOrDefaultAsync is not supported yet.")]
9971038
public async Task LastOrDefaultAsyncOnEmptySequenceExtensionTest(bool isClientProfile)
9981039
{
9991040
await using var session = await OpenSessionAsync(Domain, isClientProfile);
@@ -1004,6 +1045,7 @@ public async Task LastOrDefaultAsyncOnEmptySequenceExtensionTest(bool isClientPr
10041045
}
10051046

10061047
[Test, TestCase(true), TestCase(false)]
1048+
[IgnoreIfGithubActions("LastOrDefaultAsync is not supported yet.")]
10071049
public async Task LastOrDefaultAsyncWithPredicateExtensionTest(bool isClientProfile)
10081050
{
10091051
await using var session = await OpenSessionAsync(Domain, isClientProfile);
@@ -1016,6 +1058,7 @@ public async Task LastOrDefaultAsyncWithPredicateExtensionTest(bool isClientProf
10161058
}
10171059

10181060
[Test, TestCase(true), TestCase(false)]
1061+
[IgnoreIfGithubActions("LastOrDefaultAsync is not supported yet.")]
10191062
public async Task LastOrDefaultAsyncWithPredicateOnEmptySequenceExtensionTest(bool isClientProfile)
10201063
{
10211064
await using var session = await OpenSessionAsync(Domain, isClientProfile);
@@ -1129,7 +1172,7 @@ public async Task MaxAsyncOnEmptySequenceExtensionTest(bool isClientProfile)
11291172
.Select(stat => stat.IntFactor);
11301173
var elements = query.ToList();
11311174
Assert.AreEqual(0, elements.Count);
1132-
Assert.ThrowsAsync<InvalidOperationException>(() => query.MaxAsync());
1175+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.MaxAsync());
11331176
}
11341177
}
11351178

@@ -1201,8 +1244,8 @@ public async Task MaxAsyncWithSelectorOnEmptySequenceExtensionTest(bool isClient
12011244
var query = session.Query.All<StatRecord>().Where(stat => stat.Id < 0);
12021245
var elements = query.ToList();
12031246
Assert.AreEqual(0, elements.Count);
1204-
Assert.Throws<InvalidOperationException>(() => _ = elements.Max(stat => stat.IntFactor));
1205-
Assert.ThrowsAsync<InvalidOperationException>(() => query.MaxAsync(stat => stat.IntFactor));
1247+
_ = Assert.Throws<InvalidOperationException>(() => _ = elements.Max(stat => stat.IntFactor));
1248+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.MaxAsync(stat => stat.IntFactor));
12061249
}
12071250
}
12081251

@@ -1276,7 +1319,7 @@ public async Task MinAsyncOnEmptySequenceExtensionTest(bool isClientProfile)
12761319
.Select(stat => stat.IntFactor);
12771320
var elements = query.ToList();
12781321
Assert.AreEqual(0, elements.Count);
1279-
Assert.ThrowsAsync<InvalidOperationException>(() => query.MinAsync());
1322+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.MinAsync());
12801323
}
12811324
}
12821325

@@ -1348,8 +1391,8 @@ public async Task MinAsyncWithSelectorOnEmptySequenceExtensionTest(bool isClient
13481391
var query = session.Query.All<StatRecord>().Where(stat => stat.Id < 0);
13491392
var elements = query.ToList();
13501393
Assert.AreEqual(0, elements.Count);
1351-
Assert.Throws<InvalidOperationException>(() => _ = elements.Min(stat => stat.IntFactor));
1352-
Assert.ThrowsAsync<InvalidOperationException>(() => query.MinAsync(stat => stat.IntFactor));
1394+
_ = Assert.Throws<InvalidOperationException>(() => _ = elements.Min(stat => stat.IntFactor));
1395+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.MinAsync(stat => stat.IntFactor));
13531396
}
13541397
}
13551398

@@ -1385,7 +1428,7 @@ public async Task SingleAsyncOnEmptySequenceExtensionTest(bool isClientProfile)
13851428
await using var session = await OpenSessionAsync(Domain, isClientProfile);
13861429
await using (OpenTransactionAsync(session, isClientProfile)) {
13871430
var query = session.Query.All<Teacher>().Take(0);
1388-
Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleAsync());
1431+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleAsync());
13891432
}
13901433
}
13911434

@@ -1395,7 +1438,7 @@ public async Task SingleAsyncOnSequenceExtensionTest(bool isClientProfile)
13951438
await using var session = await OpenSessionAsync(Domain, isClientProfile);
13961439
await using (OpenTransactionAsync(session, isClientProfile)) {
13971440
var query = session.Query.All<Teacher>();
1398-
Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleAsync());
1441+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleAsync());
13991442
}
14001443
}
14011444

@@ -1416,7 +1459,7 @@ public async Task SingleAsyncWithPredicateOnEmptySequenceExtensionTest(bool isCl
14161459
await using var session = await OpenSessionAsync(Domain, isClientProfile);
14171460
await using (OpenTransactionAsync(session, isClientProfile)) {
14181461
var query = session.Query.All<Teacher>();
1419-
Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleAsync(teacher => teacher.Id < 0));
1462+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleAsync(teacher => teacher.Id < 0));
14201463
}
14211464
}
14221465

@@ -1426,7 +1469,7 @@ public async Task SingleAsyncWithPredicateOnSequenceExtensionTest(bool isClientP
14261469
await using var session = await OpenSessionAsync(Domain, isClientProfile);
14271470
await using (OpenTransactionAsync(session, isClientProfile)) {
14281471
var query = session.Query.All<Teacher>();
1429-
Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleAsync(teacher => teacher.Gender==Gender.Male));
1472+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleAsync(teacher => teacher.Gender==Gender.Male));
14301473
}
14311474
}
14321475

@@ -1459,7 +1502,7 @@ public async Task SingleOrDefaultAsyncOnSequenceExtensionTest(bool isClientProfi
14591502
await using var session = await OpenSessionAsync(Domain, isClientProfile);
14601503
await using (OpenTransactionAsync(session, isClientProfile)) {
14611504
var query = session.Query.All<Teacher>();
1462-
Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleOrDefaultAsync());
1505+
_ = Assert.ThrowsAsync<InvalidOperationException>(() => query.SingleOrDefaultAsync());
14631506
}
14641507
}
14651508

@@ -1490,7 +1533,7 @@ public async Task SingleOrDefaultAsyncWithPredicateOnSequenceExtensionTest(bool
14901533
await using var session = await OpenSessionAsync(Domain, isClientProfile);
14911534
await using (OpenTransactionAsync(session, isClientProfile)) {
14921535
var query = session.Query.All<Teacher>();
1493-
Assert.ThrowsAsync<InvalidOperationException>(
1536+
_ = Assert.ThrowsAsync<InvalidOperationException>(
14941537
() => query.SingleOrDefaultAsync(teacher => teacher.Gender==Gender.Male));
14951538
}
14961539
}

0 commit comments

Comments
 (0)