@@ -247,7 +247,7 @@ public virtual async Task SaveUseExpectedSqlTypeAsync()
247
247
}
248
248
249
249
// 2 properties + revision
250
- AssertSqlType ( driver , 3 ) ;
250
+ AssertSqlType ( driver , 3 , true ) ;
251
251
}
252
252
253
253
[ Test ]
@@ -266,7 +266,7 @@ public virtual async Task UpdateUseExpectedSqlTypeAsync()
266
266
}
267
267
268
268
// 2 properties + revision x 2 (check + update)
269
- AssertSqlType ( driver , 4 ) ;
269
+ AssertSqlType ( driver , 4 , true ) ;
270
270
}
271
271
272
272
[ Test ]
@@ -296,41 +296,65 @@ public virtual async Task QueryUseExpectedSqlTypeAsync()
296
296
await ( t . CommitAsync ( ) ) ;
297
297
}
298
298
299
- AssertSqlType ( driver , 5 ) ;
299
+ AssertSqlType ( driver , 5 , false ) ;
300
+
301
+ using ( var s = OpenSession ( ) )
302
+ using ( var t = s . BeginTransaction ( ) )
303
+ {
304
+ var q = s
305
+ . CreateQuery (
306
+ "from DateTimeClass d where d.Value = :value and " +
307
+ "d.NullableValue = :nullableValue and " +
308
+ "d.Revision = :revision and " +
309
+ ":other1 = :other2" )
310
+ . SetParameter ( "value" , Now , Type )
311
+ . SetParameter ( "nullableValue" , Now , Type )
312
+ . SetParameter ( "revision" , Now , Type )
313
+ . SetParameter ( "other1" , Now , Type )
314
+ . SetParameter ( "other2" , Now , Type ) ;
315
+ driver . ClearStats ( ) ;
316
+ await ( q . ListAsync < DateTimeClass > ( ) ) ;
317
+ await ( t . CommitAsync ( ) ) ;
318
+ }
319
+
320
+ AssertSqlType ( driver , 5 , true ) ;
300
321
}
301
322
302
- private void AssertSqlType ( ClientDriverWithParamsStats driver , int expectedCount )
323
+ private void AssertSqlType ( ClientDriverWithParamsStats driver , int expectedCount , bool exactType )
303
324
{
304
- if ( Type . SqlTypes ( Sfi ) . Any ( t => Equals ( t , SqlTypeFactory . DateTime2 ) ) )
325
+ var typeSqlTypes = Type . SqlTypes ( Sfi ) ;
326
+ if ( typeSqlTypes . Any ( t => t is DateTime2SqlType ) )
305
327
{
328
+ var expectedType = exactType ? typeSqlTypes . First ( t => t is DateTime2SqlType ) : SqlTypeFactory . DateTime2 ;
306
329
Assert . That (
307
330
driver . GetCount ( SqlTypeFactory . DateTime ) ,
308
331
Is . EqualTo ( 0 ) ,
309
332
"Found unexpected SqlTypeFactory.DateTime usages." ) ;
310
333
Assert . That (
311
- driver . GetCount ( SqlTypeFactory . DateTime2 ) ,
334
+ driver . GetCount ( expectedType ) ,
312
335
Is . EqualTo ( expectedCount ) ,
313
336
"Unexpected SqlTypeFactory.DateTime2 usage count." ) ;
314
337
Assert . That ( driver . GetCount ( DbType . DateTime ) , Is . EqualTo ( 0 ) , "Found unexpected DbType.DateTime usages." ) ;
315
338
Assert . That (
316
- driver . GetCount ( DbType . DateTime2 ) ,
339
+ driver . GetCount ( expectedType ) ,
317
340
Is . EqualTo ( expectedCount ) ,
318
341
"Unexpected DbType.DateTime2 usage count." ) ;
319
342
}
320
- else if ( Type . SqlTypes ( Sfi ) . Any ( t => Equals ( t , SqlTypeFactory . DateTime ) ) )
343
+ else if ( typeSqlTypes . Any ( t => t is DateTimeSqlType ) )
321
344
{
345
+ var expectedType = exactType ? typeSqlTypes . First ( t => t is DateTimeSqlType ) : SqlTypeFactory . DateTime ;
322
346
Assert . That (
323
347
driver . GetCount ( SqlTypeFactory . DateTime2 ) ,
324
348
Is . EqualTo ( 0 ) ,
325
349
"Found unexpected SqlTypeFactory.DateTime2 usages." ) ;
326
350
Assert . That (
327
- driver . GetCount ( SqlTypeFactory . DateTime ) ,
351
+ driver . GetCount ( expectedType ) ,
328
352
Is . EqualTo ( expectedCount ) ,
329
353
"Unexpected SqlTypeFactory.DateTime usage count." ) ;
330
354
Assert . That ( driver . GetCount ( DbType . DateTime2 ) , Is . EqualTo ( 0 ) , "Found unexpected DbType.DateTime2 usages." ) ;
331
- Assert . That ( driver . GetCount ( DbType . DateTime ) , Is . EqualTo ( expectedCount ) , "Unexpected DbType.DateTime usage count." ) ;
355
+ Assert . That ( driver . GetCount ( expectedType ) , Is . EqualTo ( expectedCount ) , "Unexpected DbType.DateTime usage count." ) ;
332
356
}
333
- else if ( Type . SqlTypes ( Sfi ) . Any ( t => Equals ( t , SqlTypeFactory . Date ) ) )
357
+ else if ( typeSqlTypes . Any ( t => Equals ( t , SqlTypeFactory . Date ) ) )
334
358
{
335
359
Assert . That (
336
360
driver . GetCount ( SqlTypeFactory . DateTime ) ,
@@ -343,6 +367,10 @@ private void AssertSqlType(ClientDriverWithParamsStats driver, int expectedCount
343
367
Assert . That ( driver . GetCount ( DbType . DateTime ) , Is . EqualTo ( 0 ) , "Found unexpected DbType.DateTime usages." ) ;
344
368
Assert . That ( driver . GetCount ( DbType . Date ) , Is . EqualTo ( expectedCount ) , "Unexpected DbType.Date usage count." ) ;
345
369
}
370
+ else
371
+ {
372
+ Assert . Ignore ( "Test does not involve tested types" ) ;
373
+ }
346
374
}
347
375
348
376
protected virtual long DateAccuracyInTicks => Dialect . TimestampResolutionInTicks ;
0 commit comments