Skip to content
This repository was archived by the owner on Dec 24, 2022. It is now read-only.

Commit aba6ba2

Browse files
committed
Merge pull request #511 from bogdangrigg/patch-1
Add COALESCE binary expression tests
2 parents a103d8e + e4b492e commit aba6ba2

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

src/ServiceStack.OrmLite.SqlServerTests/Expressions/EqualityExpressionsTest.cs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,55 @@ public void Can_select_not_equals_null_espression()
257257
}
258258

259259
// 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+
260309
#endregion
261310
}
262311
}

0 commit comments

Comments
 (0)