@@ -257,6 +257,55 @@ public void Can_select_not_equals_null_espression()
257
257
}
258
258
259
259
// Assume not equal works ;-)
260
+
261
+ [ Test ]
262
+ public void Can_select_equals_coalesce_on_the_left_expression ( )
263
+ {
264
+ // ReSharper disable ConvertToConstant.Local
265
+ object stringVal = "sometext" ;
266
+ // ReSharper restore ConvertToConstant.Local
267
+
268
+ var expected = new TestType ( )
269
+ {
270
+ IntColumn = 12 ,
271
+ BoolColumn = false ,
272
+ StringColumn = "test" ,
273
+ NullableCol = "sometext"
274
+ } ;
275
+
276
+ EstablishContext ( 10 , expected ) ;
277
+
278
+ var actual = OpenDbConnection ( ) . Select < TestType > ( q => ( q . NullableCol ?? "othertext" ) == stringVal ) ;
279
+
280
+ Assert . IsNotNull ( actual ) ;
281
+ Assert . AreEqual ( actual . Count , 1 ) ; // this passes, because PARAMS: @0=othertext, @1=sometext
282
+ CollectionAssert . Contains ( actual , expected ) ;
283
+ }
284
+
285
+ [ Test ]
286
+ public void Can_select_equals_coalesce_on_the_right_expression ( )
287
+ {
288
+ // ReSharper disable ConvertToConstant.Local
289
+ object stringVal = "sometext" ;
290
+ // ReSharper restore ConvertToConstant.Local
291
+
292
+ var expected = new TestType ( )
293
+ {
294
+ IntColumn = 12 ,
295
+ BoolColumn = false ,
296
+ StringColumn = "test" ,
297
+ NullableCol = "sometext"
298
+ } ;
299
+
300
+ EstablishContext ( 10 , expected ) ;
301
+
302
+ var actual = OpenDbConnection ( ) . Select < TestType > ( q => stringVal == ( q . NullableCol ?? "othertext" ) ) ;
303
+
304
+ Assert . IsNotNull ( actual ) ;
305
+ Assert . AreEqual ( actual . Count , 1 ) ; // this will fail for now, because PARAMS: @0=othertext, @1={Text:"COALESCE(""NullableCol"",@0)"}
306
+ CollectionAssert . Contains ( actual , expected ) ; // this will fail as well
307
+ }
308
+
260
309
#endregion
261
310
}
262
311
}
0 commit comments