Skip to content

Commit 3deb380

Browse files
committed
DateOnly/TimeOnly-related tests for Linq improved
1 parent 2d80867 commit 3deb380

4 files changed

Lines changed: 37 additions & 20 deletions

File tree

Orm/Xtensive.Orm.Tests/Linq/DateTimeAndDateTimeOffset/DateOnly/DateOnlyToIsoStringTest.cs renamed to Orm/Xtensive.Orm.Tests/Linq/DateTimeAndDateTimeOffset/DateOnly/DateOnlyToStringTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111

1212
namespace Xtensive.Orm.Tests.Linq.DateTimeAndDateTimeOffset.DateOnlys
1313
{
14-
public class DateOnlyToIsoStringTest : DateTimeBaseTest
14+
public class DateOnlyToStringTest : DateTimeBaseTest
1515
{
1616
[Test]
17-
public void ToIsoStringTest()
17+
public void ToStringTest()
1818
{
1919
ExecuteInsideSession((s) => {
20-
RunTest<SingleDateOnlyEntity>(s, c => c.DateOnly.ToString("s") == FirstDateOnly.ToString("s"));
21-
RunWrongTest<SingleDateOnlyEntity>(s, c => c.DateOnly.ToString("s") == FirstDateOnly.AddDays(1).ToString("s"));
20+
RunTest<SingleDateOnlyEntity>(s, c => c.DateOnly.ToString("o") == FirstDateOnly.ToString("o"));
21+
RunWrongTest<SingleDateOnlyEntity>(s, c => c.DateOnly.ToString("o") == FirstDateOnly.AddDays(1).ToString("o"));
2222
});
2323
}
2424
}

Orm/Xtensive.Orm.Tests/Linq/DateTimeAndDateTimeOffset/TimeOnly/ComparisonTestTimeOnly.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public void CompareMysqTest()
6969

7070
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly > FirstTimeOnly);
7171
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly > FirstMillisecondTimeOnly);
72-
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly < FirstMillisecondTimeOnly.AddMinutes(3));
72+
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly < FirstMillisecondTimeOnly.AddMinutes(-3));
7373
});
7474
}
7575
}

Orm/Xtensive.Orm.Tests/Linq/DateTimeAndDateTimeOffset/TimeOnly/OperationsTest.cs

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,16 @@ public void AddHoursTest()
1717
{
1818
ExecuteInsideSession((s) => {
1919
RunTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.AddHours(1) == FirstTimeOnly.AddHours(1));
20-
RunTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.AddHours(-2) == FirstMillisecondTimeOnly.AddHours(-2));
2120
RunTest<SingleTimeOnlyEntity>(s, c => c.NullableTimeOnly.Value.AddHours(33) == NullableTimeOnly.AddHours(33));
2221

2322
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.AddHours(1) == FirstTimeOnly.AddHours(2));
24-
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.AddHours(-1) == FirstMillisecondTimeOnly.AddHours(-2));
2523
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.NullableTimeOnly.Value.AddHours(33) == NullableTimeOnly.AddHours(44));
24+
25+
if(StorageProviderInfo.Instance.CheckProviderIsNot(StorageProvider.MySql)
26+
|| StorageProviderInfo.Instance.CheckProviderVersionIsAtLeast(new Version(5, 6))) {
27+
RunTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.AddHours(-2) == FirstMillisecondTimeOnly.AddHours(-2));
28+
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.AddHours(-1) == FirstMillisecondTimeOnly.AddHours(-2));
29+
}
2630
});
2731
}
2832

@@ -31,47 +35,60 @@ public void AddMinutesTest()
3135
{
3236
ExecuteInsideSession((s) => {
3337
RunTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.AddMinutes(1) == FirstTimeOnly.AddMinutes(1));
34-
RunTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.AddMinutes(-2) == FirstMillisecondTimeOnly.AddMinutes(-2));
3538
RunTest<SingleTimeOnlyEntity>(s, c => c.NullableTimeOnly.Value.AddMinutes(33) == NullableTimeOnly.AddMinutes(33));
3639

3740
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.AddMinutes(1) == FirstTimeOnly.AddMinutes(2));
38-
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.AddMinutes(-1) == FirstMillisecondTimeOnly.AddMinutes(-2));
3941
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.NullableTimeOnly.Value.AddMinutes(33) == NullableTimeOnly.AddMinutes(44));
42+
43+
if (StorageProviderInfo.Instance.CheckProviderIsNot(StorageProvider.MySql)
44+
|| StorageProviderInfo.Instance.CheckProviderVersionIsAtLeast(new Version(5, 6))) {
45+
RunTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.AddMinutes(-2) == FirstMillisecondTimeOnly.AddMinutes(-2));
46+
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.AddMinutes(-1) == FirstMillisecondTimeOnly.AddMinutes(-2));
47+
}
4048
});
4149
}
4250

43-
[Test, Ignore("Compiler's not implemented yet")]
51+
[Test]
4452
public void AddTimeSpanTest()
4553
{
4654
ExecuteInsideSession((s) => {
47-
RunTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.Add(FirstOffset) == FirstTimeOnly.Add(FirstOffset));
4855
RunTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.Add(SecondOffset) == FirstMillisecondTimeOnly.Add(SecondOffset));
56+
RunTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.Add(FirstOffset) == FirstTimeOnly.Add(FirstOffset));
4957
RunTest<SingleTimeOnlyEntity>(s, c => c.NullableTimeOnly.Value.Add(FirstOffset) == NullableTimeOnly.Add(FirstOffset));
5058

5159
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.Add(FirstOffset) == FirstTimeOnly.Add(WrongOffset));
52-
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.Add(SecondOffset) == FirstMillisecondTimeOnly.Add(WrongOffset));
5360
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.NullableTimeOnly.Value.Add(FirstOffset) == NullableTimeOnly.Add(WrongOffset));
61+
62+
if (StorageProviderInfo.Instance.CheckProviderIsNot(StorageProvider.MySql)
63+
|| StorageProviderInfo.Instance.CheckProviderVersionIsAtLeast(new Version(5, 6))) {
64+
RunTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.Add(SecondOffset) == FirstMillisecondTimeOnly.Add(SecondOffset));
65+
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly.Add(SecondOffset) == FirstMillisecondTimeOnly.Add(WrongOffset));
66+
}
5467
});
5568
}
5669

5770
[Test]
5871
public void MinusTimeOnlyTest()
5972
{
60-
Require.ProviderIsNot(StorageProvider.MySql);
73+
var inteval = FirstTimeOnly - SecondTimeOnly;
74+
6175
ExecuteInsideSession((s) => {
6276
RunTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly - SecondTimeOnly == FirstTimeOnly - SecondTimeOnly);
63-
RunTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly - SecondTimeOnly == FirstMillisecondTimeOnly - SecondTimeOnly);
6477
RunTest<SingleTimeOnlyEntity>(s, c => c.NullableTimeOnly - SecondTimeOnly == NullableTimeOnly - SecondTimeOnly);
6578

6679
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly - SecondTimeOnly == FirstTimeOnly - WrongTimeOnly);
67-
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly - SecondTimeOnly == FirstMillisecondTimeOnly - WrongTimeOnly);
6880
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.NullableTimeOnly - SecondTimeOnly == NullableTimeOnly - WrongTimeOnly);
6981

82+
if (StorageProviderInfo.Instance.CheckProviderIsNot(StorageProvider.MySql)
83+
|| StorageProviderInfo.Instance.CheckProviderVersionIsAtLeast(new Version(5, 6))) {
84+
RunTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly - SecondTimeOnly == FirstMillisecondTimeOnly - SecondTimeOnly);
85+
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.MillisecondTimeOnly - SecondTimeOnly == FirstMillisecondTimeOnly - WrongTimeOnly);
86+
}
7087
});
7188
}
7289

7390
[Test]
74-
public void MysqlMinisDateTimeTest()
91+
public void MysqlMinisTimeOnlyTest()
7592
{
7693
Require.ProviderIs(StorageProvider.MySql);
7794
ExecuteInsideSession((s) => {

Orm/Xtensive.Orm.Tests/Linq/DateTimeAndDateTimeOffset/TimeOnly/TimeOnlyToIsoString.cs renamed to Orm/Xtensive.Orm.Tests/Linq/DateTimeAndDateTimeOffset/TimeOnly/TimeOnlyToString.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111

1212
namespace Xtensive.Orm.Tests.Linq.DateTimeAndDateTimeOffset.TimeOnlys
1313
{
14-
public class TimeOnlyToIsoStringTest : DateTimeBaseTest
14+
public class TimeOnlyToStringTest : DateTimeBaseTest
1515
{
1616
[Test]
17-
public void ToIsoStringTest()
17+
public void ToStringTest()
1818
{
1919
ExecuteInsideSession((s) => {
20-
RunTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.ToString("s") == FirstTimeOnly.ToString("s"));
21-
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.ToString("s") == FirstTimeOnly.AddHours(1).ToString("s"));
20+
RunTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.ToString("o") == FirstTimeOnly.ToString("o"));
21+
RunWrongTest<SingleTimeOnlyEntity>(s, c => c.TimeOnly.ToString("o") == FirstTimeOnly.AddHours(1).ToString("o"));
2222
});
2323
}
2424
}

0 commit comments

Comments
 (0)