@@ -12,11 +12,22 @@ public class MethodExpressionTests : ExpressionsTestBase
12
12
[ Test ]
13
13
public void Can_select_ints_using_array_contains ( )
14
14
{
15
- var ints = new [ ] { 1 , 2 , 3 } ;
15
+ var ints = new [ ] { 1 , 20 , 30 } ;
16
+ var nullableInts = new int ? [ ] { 5 , 30 , null , 20 } ;
16
17
17
18
using ( var db = OpenDbConnection ( ) )
18
19
{
19
- db . Select < TestType > ( x => ints . Contains ( x . Id ) ) ;
20
+ var int10 = new TestType { IntColumn = 10 } ;
21
+ var int20 = new TestType { IntColumn = 20 } ;
22
+ var int30 = new TestType { IntColumn = 30 } ;
23
+
24
+ EstablishContext ( 0 , int10 , int20 , int30 ) ;
25
+
26
+ var results = db . Select < TestType > ( x => ints . Contains ( x . IntColumn ) ) ;
27
+ var resultsNullable = db . Select < TestType > ( x => nullableInts . Contains ( x . IntColumn ) ) ;
28
+
29
+ CollectionAssert . AreEquivalent ( new [ ] { int20 , int30 } , results ) ;
30
+ CollectionAssert . AreEquivalent ( new [ ] { int20 , int30 } , resultsNullable ) ;
20
31
21
32
Assert . That ( db . GetLastSql ( ) , Is . StringContaining ( "(@0,@1,@2)" ) .
22
33
Or . StringContaining ( "(:0,:1,:2)" ) ) ;
@@ -26,11 +37,22 @@ public void Can_select_ints_using_array_contains()
26
37
[ Test ]
27
38
public void Can_select_ints_using_list_contains ( )
28
39
{
29
- var ints = new [ ] { 1 , 2 , 3 } . ToList ( ) ;
40
+ var ints = new [ ] { 1 , 20 , 30 } . ToList ( ) ;
41
+ var nullableInts = new int ? [ ] { 5 , 30 , null , 20 } . ToList ( ) ;
30
42
31
43
using ( var db = OpenDbConnection ( ) )
32
44
{
33
- db . Select < TestType > ( x => ints . Contains ( x . Id ) ) ;
45
+ var int10 = new TestType { IntColumn = 10 } ;
46
+ var int20 = new TestType { IntColumn = 20 } ;
47
+ var int30 = new TestType { IntColumn = 30 } ;
48
+
49
+ EstablishContext ( 0 , int10 , int20 , int30 ) ;
50
+
51
+ var results = db . Select < TestType > ( x => ints . Contains ( x . IntColumn ) ) ;
52
+ var resultsNullable = db . Select < TestType > ( x => nullableInts . Contains ( x . IntColumn ) ) ;
53
+
54
+ CollectionAssert . AreEquivalent ( new [ ] { int20 , int30 } , results ) ;
55
+ CollectionAssert . AreEquivalent ( new [ ] { int20 , int30 } , resultsNullable ) ;
34
56
35
57
Assert . That ( db . GetLastSql ( ) , Is . StringContaining ( "(@0,@1,@2)" ) .
36
58
Or . StringContaining ( "(:0,:1,:2)" ) ) ;
@@ -44,8 +66,11 @@ public void Can_select_ints_using_empty_array_contains()
44
66
45
67
using ( var db = OpenDbConnection ( ) )
46
68
{
47
- db . Select < TestType > ( x => ints . Contains ( x . Id ) ) ;
48
-
69
+ EstablishContext ( 5 ) ;
70
+
71
+ var results = db . Select < TestType > ( x => ints . Contains ( x . Id ) ) ;
72
+
73
+ CollectionAssert . IsEmpty ( results ) ;
49
74
Assert . That ( db . GetLastSql ( ) , Is . StringContaining ( "(NULL)" ) ) ;
50
75
}
51
76
}
0 commit comments