Skip to content

Commit f857da7

Browse files
committed
Improve checks of native extraction results
1 parent 0388878 commit f857da7

File tree

1 file changed

+37
-23
lines changed

1 file changed

+37
-23
lines changed

Orm/Xtensive.Orm.Tests.Sql/PostgreSql/InfinityAliasTest.cs

Lines changed: 37 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -606,22 +606,26 @@ private void TestDatePartExtraction(string table, SqlDatePart part, int expected
606606
using (var reader = command.ExecuteReader()) {
607607

608608
while (reader.Read()) {
609-
if (aliasesEnabled && part != SqlDatePart.Year) {
610-
// year from +-infinity -> +-infinity
609+
if (aliasesEnabled) {
610+
// +-infinify
611+
// year from +-infinity -> +-infinity (or 0 in case of versions older than 9.6)
611612
// month from +-infinity -> null (or 0 in case of versions older that 9.6)
612613
if (Driver.CoreServerInfo.ServerVersion >= StorageProviderVersion.PostgreSql96) {
613-
Assert.That(reader.IsDBNull(0));
614+
if (part != SqlDatePart.Year) {
615+
Assert.That(reader.IsDBNull(0));
616+
}
617+
else {
618+
var partValue = reader.GetDouble(0);
619+
Assert.That(double.IsInfinity(partValue), Is.True);
620+
}
614621
}
615622
else {
616623
var partValue = reader.GetDouble(0);
617624
Assert.That(partValue, Is.Zero);
618625
}
619626
}
620-
else if (Driver.CoreServerInfo.ServerVersion < StorageProviderVersion.PostgreSql96) {
621-
var partValue = reader.GetDouble(0);
622-
Assert.That(partValue, Is.Zero);
623-
}
624627
else {
628+
// pure dates
625629
var partValue = reader.GetDouble(0);
626630
CheckPartNative(partValue, expectedValueNative, aliasesEnabled);
627631
}
@@ -651,21 +655,26 @@ private void TestDateTimePartExtraction(string table, SqlDateTimePart part, int
651655
using (var reader = command.ExecuteReader()) {
652656

653657
while (reader.Read()) {
654-
if (aliasesEnabled && part != SqlDateTimePart.Year) {
655-
// year from +-infinity -> +-infinity
658+
if (aliasesEnabled) {
659+
// +-infinify
660+
// year from +-infinity -> +-infinity (or 0 in case of versions older than 9.6)
656661
// month from +-infinity -> null (or 0 in case of versions older that 9.6)
657-
if (Driver.CoreServerInfo.ServerVersion >= StorageProviderVersion.PostgreSql96)
658-
Assert.That(reader.IsDBNull(0));
662+
if (Driver.CoreServerInfo.ServerVersion >= StorageProviderVersion.PostgreSql96) {
663+
if (part != SqlDateTimePart.Year) {
664+
Assert.That(reader.IsDBNull(0));
665+
}
666+
else {
667+
var partValue = reader.GetDouble(0);
668+
Assert.That(double.IsInfinity(partValue), Is.True);
669+
}
670+
}
659671
else {
660672
var partValue = reader.GetDouble(0);
661673
Assert.That(partValue, Is.Zero);
662674
}
663675
}
664-
else if (Driver.CoreServerInfo.ServerVersion < StorageProviderVersion.PostgreSql96) {
665-
var partValue = reader.GetDouble(0);
666-
Assert.That(partValue, Is.Zero);
667-
}
668676
else {
677+
// pure dates
669678
var partValue = reader.GetDouble(0);
670679
CheckPartNative(partValue, expectedValueNative, aliasesEnabled);
671680
}
@@ -695,21 +704,26 @@ private void TestDateTimeOffsetPartExtraction(string table, SqlDateTimeOffsetPar
695704
using (var reader = command.ExecuteReader()) {
696705

697706
while (reader.Read()) {
698-
if (aliasesEnabled && part != SqlDateTimeOffsetPart.Year) {
699-
// year from +-infinity -> +-infinity
707+
if (aliasesEnabled) {
708+
// +-infinify
709+
// year from +-infinity -> +-infinity (or 0 in case of versions older than 9.6)
700710
// month from +-infinity -> null (or 0 in case of versions older that 9.6)
701-
if (Driver.CoreServerInfo.ServerVersion >= StorageProviderVersion.PostgreSql96 )
702-
Assert.That(reader.IsDBNull(0));
711+
if (Driver.CoreServerInfo.ServerVersion >= StorageProviderVersion.PostgreSql96) {
712+
if (part != SqlDateTimeOffsetPart.Year) {
713+
Assert.That(reader.IsDBNull(0));
714+
}
715+
else {
716+
var partValue = reader.GetDouble(0);
717+
Assert.That(double.IsInfinity(partValue), Is.True);
718+
}
719+
}
703720
else {
704721
var partValue = reader.GetDouble(0);
705722
Assert.That(partValue, Is.Zero);
706723
}
707724
}
708-
else if (Driver.CoreServerInfo.ServerVersion < StorageProviderVersion.PostgreSql96) {
709-
var partValue = reader.GetDouble(0);
710-
Assert.That(partValue, Is.Zero);
711-
}
712725
else {
726+
// pure dates
713727
var partValue = reader.GetDouble(0);
714728
CheckPartNative(partValue, expectedValueNative, aliasesEnabled);
715729
}

0 commit comments

Comments
 (0)