|
1 | | -// Copyright (C) 2008-2021 Xtensive LLC. |
| 1 | +// Copyright (C) 2008-2023 Xtensive LLC. |
2 | 2 | // This code is distributed under MIT license terms. |
3 | 3 | // See the License.txt file in the project root for more information. |
4 | 4 | // Created by: Dmitri Maximov |
@@ -113,6 +113,14 @@ public class X : Entity |
113 | 113 | [Field] |
114 | 114 | public DateTime FDateTime { get; set; } |
115 | 115 |
|
| 116 | +#if NET6_0_OR_GREATER //DO_DATEONLY |
| 117 | + [Field] |
| 118 | + public DateOnly FDateOnly { get; set; } |
| 119 | + |
| 120 | + [Field] |
| 121 | + public TimeOnly FTimeOnly { get; set; } |
| 122 | + |
| 123 | +#endif |
116 | 124 | [Field] |
117 | 125 | public TimeSpan FTimeSpan { get; set; } |
118 | 126 |
|
@@ -198,6 +206,14 @@ public class X : Entity |
198 | 206 | [Field] |
199 | 207 | public DateTime? FNDateTime { get; set; } |
200 | 208 |
|
| 209 | +#if NET6_0_OR_GREATER //DO_DATEONLY |
| 210 | + [Field] |
| 211 | + public DateOnly? FNDateOnly { get; set; } |
| 212 | + |
| 213 | + [Field] |
| 214 | + public TimeOnly? FNTimeOnly { get; set; } |
| 215 | + |
| 216 | +#endif |
201 | 217 | [Field] |
202 | 218 | public TimeSpan? FNTimeSpan { get; set; } |
203 | 219 |
|
@@ -274,17 +290,28 @@ public void DefaultValuesTest() |
274 | 290 | t.Complete(); |
275 | 291 | } |
276 | 292 |
|
277 | | - var field = typeof (StorageDriver).GetField("underlyingDriver", BindingFlags.Instance | BindingFlags.NonPublic); |
278 | | - var sqlDriver = (SqlDriver) field.GetValue(Domain.Handlers.StorageDriver); |
| 293 | + var sqlDriver = TestSqlDriver.Create(session.Domain.Configuration.ConnectionInfo); |
279 | 294 | var dataTypeInfo = sqlDriver.ServerInfo.DataTypes.DateTime; |
280 | | - var minValue = ((ValueRange<DateTime>) dataTypeInfo.ValueRange).MinValue; |
| 295 | + var dateTimeMinValue = ((ValueRange<DateTime>) dataTypeInfo.ValueRange).MinValue; |
| 296 | + |
| 297 | +#if NET6_0_OR_GREATER //DO_DATEONLY |
| 298 | + dataTypeInfo = sqlDriver.ServerInfo.DataTypes.DateOnly; |
| 299 | + var dateOnlyMinValue = ((ValueRange<DateOnly>) dataTypeInfo.ValueRange).MinValue; |
| 300 | + |
| 301 | + dataTypeInfo = sqlDriver.ServerInfo.DataTypes.TimeOnly; |
| 302 | + var timeOnlyMinValue = ((ValueRange<TimeOnly>) dataTypeInfo.ValueRange).MinValue; |
281 | 303 |
|
| 304 | +#endif |
282 | 305 | using (var t = session.OpenTransaction()) { |
283 | 306 | X x = session.Query.SingleOrDefault<X>(key); |
284 | 307 | Assert.AreEqual(false, x.FBool); |
285 | 308 | Assert.AreEqual(0, x.FByte); |
286 | 309 | Assert.AreEqual(null, x.FByteArray); |
287 | | - Assert.AreEqual(minValue, x.FDateTime); |
| 310 | + Assert.AreEqual(dateTimeMinValue, x.FDateTime); |
| 311 | +#if NET6_0_OR_GREATER //DO_DATEONLY |
| 312 | + Assert.AreEqual(dateOnlyMinValue, x.FDateOnly); |
| 313 | + Assert.AreEqual(timeOnlyMinValue, x.FTimeOnly); |
| 314 | +#endif |
288 | 315 | Assert.AreEqual(0, x.FDecimal); |
289 | 316 | Assert.AreEqual(0, x.FDouble); |
290 | 317 | Assert.AreEqual(EByte.Default, x.FEByte); |
@@ -312,6 +339,10 @@ public void DefaultValuesTest() |
312 | 339 | Assert.AreEqual(null, x.FNBool); |
313 | 340 | Assert.AreEqual(null, x.FNByte); |
314 | 341 | Assert.AreEqual(null, x.FNDateTime); |
| 342 | +#if NET6_0_OR_GREATER //DO_DATEONLY |
| 343 | + Assert.AreEqual(null, x.FNDateOnly); |
| 344 | + Assert.AreEqual(null, x.FNTimeOnly); |
| 345 | +#endif |
315 | 346 | Assert.AreEqual(null, x.FNDecimal); |
316 | 347 | Assert.AreEqual(null, x.FNDouble); |
317 | 348 | Assert.AreEqual(null, x.FNEByte); |
|
0 commit comments