Skip to content

Commit 40a7e5f

Browse files
committed
Add unit-tests : "ExpressionTests_Enum_Nullable"
Linked to PR #55
1 parent e1c1cc7 commit 40a7e5f

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

test/System.Linq.Dynamic.Core.Tests/ExpressionTests.cs

+32
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,38 @@ public void ExpressionTests_Enum()
328328
Assert.Equal(TestEnum.Var5, result7.Single());
329329
}
330330

331+
[Fact]
332+
public void ExpressionTests_Enum_Nullable()
333+
{
334+
GlobalConfig.CustomTypeProvider = new NetStandardCustomTypeProvider();
335+
336+
//Act
337+
var result1a = new[] { TestEnum.Var1 }.AsQueryable().Where("it = @0", (TestEnum?)TestEnum.Var1);
338+
var result1b = new[] { TestEnum.Var1 }.AsQueryable().Where("@0 = it", (TestEnum?)TestEnum.Var1);
339+
var result2a = new[] { (TestEnum?)TestEnum.Var1, null }.AsQueryable().Where("it = @0", TestEnum.Var1);
340+
var result2b = new[] { (TestEnum?)TestEnum.Var1, null }.AsQueryable().Where("@0 = it", TestEnum.Var1);
341+
var result3a = new[] { (TestEnum?)TestEnum.Var1, null }.AsQueryable().Where("it = @0", (TestEnum?)TestEnum.Var1);
342+
var result3b = new[] { (TestEnum?)TestEnum.Var1, null }.AsQueryable().Where("@0 = it", (TestEnum?)TestEnum.Var1);
343+
344+
var result10a = new[] { TestEnum.Var1 }.AsQueryable().Where("it = @0", "Var1");
345+
var result10b = new[] { TestEnum.Var1 }.AsQueryable().Where("@0 = it", "Var1");
346+
var result11a = new[] { (TestEnum?)TestEnum.Var1, null }.AsQueryable().Where("it = @0", "Var1");
347+
var result11b = new[] { (TestEnum?)TestEnum.Var1, null }.AsQueryable().Where("@0 = it", "Var1");
348+
349+
//Assert
350+
Assert.Equal(TestEnum.Var1, result1a.Single());
351+
Assert.Equal(TestEnum.Var1, result1b.Single());
352+
Assert.Equal(TestEnum.Var1, result2a.Single());
353+
Assert.Equal(TestEnum.Var1, result2b.Single());
354+
Assert.Equal((TestEnum?)TestEnum.Var1, result3a.Single());
355+
Assert.Equal((TestEnum?)TestEnum.Var1, result3b.Single());
356+
357+
Assert.Equal(TestEnum.Var1, result10a.Single());
358+
Assert.Equal(TestEnum.Var1, result10b.Single());
359+
Assert.Equal((TestEnum?)TestEnum.Var1, result11a.Single());
360+
Assert.Equal((TestEnum?)TestEnum.Var1, result11b.Single());
361+
}
362+
331363
[Fact]
332364
public void ExpressionTests_FirstOrDefault()
333365
{

0 commit comments

Comments
 (0)