@@ -12,6 +12,60 @@ namespace System.Linq.Dynamic.Core.Tests
12
12
{
13
13
public class ExpressionTests
14
14
{
15
+ public enum TestEnum2 : sbyte
16
+ {
17
+ Var1 = 0 ,
18
+ Var2 = 1 ,
19
+ Var3 = 2 ,
20
+ Var4 = 4 ,
21
+ Var5 = 8 ,
22
+ Var6 = 16 ,
23
+ }
24
+
25
+ public class TestEnumClass
26
+ {
27
+ public TestEnum A { get ; set ; }
28
+
29
+ public TestEnum2 B { get ; set ; }
30
+
31
+ public int Id { get ; set ; }
32
+ }
33
+
34
+ public class TestGuidNullClass
35
+ {
36
+ public Guid ? GuidNull { get ; set ; }
37
+
38
+ public int Id { get ; set ; }
39
+ }
40
+
41
+ [ Fact ]
42
+ public void ExpressionTests_Add_Number ( )
43
+ {
44
+ //Arrange
45
+ var values = new [ ] { - 1 , 2 } . AsQueryable ( ) ;
46
+
47
+ //Act
48
+ var result = values . Select < int > ( "it + 1" ) ;
49
+ var expected = values . Select ( i => i + 1 ) ;
50
+
51
+ //Assert
52
+ Check . That ( result ) . ContainsExactly ( expected ) ;
53
+ }
54
+
55
+ [ Fact ]
56
+ public void ExpressionTests_Add_String ( )
57
+ {
58
+ //Arrange
59
+ var values = new [ ] { "a" , "b" } . AsQueryable ( ) ;
60
+
61
+ //Act
62
+ var result = values . Select < string > ( "it + \" z\" " ) ;
63
+ var expected = values . Select ( i => i + "z" ) ;
64
+
65
+ //Assert
66
+ Check . That ( result ) . ContainsExactly ( expected ) ;
67
+ }
68
+
15
69
[ Fact ]
16
70
public void ExpressionTests_ArrayInitializer ( )
17
71
{
@@ -34,25 +88,6 @@ public void ExpressionTests_ArrayInitializer()
34
88
Assert . Throws < ParseException > ( ( ) => list . AsQueryable ( ) . SelectMany ( "new] {}" ) ) ;
35
89
}
36
90
37
- public enum TestEnum2 : sbyte
38
- {
39
- Var1 = 0 ,
40
- Var2 = 1 ,
41
- Var3 = 2 ,
42
- Var4 = 4 ,
43
- Var5 = 8 ,
44
- Var6 = 16 ,
45
- }
46
-
47
- public class TestEnumClass
48
- {
49
- public TestEnum A { get ; set ; }
50
-
51
- public TestEnum2 B { get ; set ; }
52
-
53
- public int Id { get ; set ; }
54
- }
55
-
56
91
[ Fact ]
57
92
public void ExpressionTests_BinaryAndNumericConvert ( )
58
93
{
@@ -379,6 +414,20 @@ public void ExpressionTests_DistinctBy()
379
414
Assert . Equal ( qry3 . Count ( ) , 2 ) ;
380
415
}
381
416
417
+ [ Fact ]
418
+ public void ExpressionTests_Divide_Number ( )
419
+ {
420
+ //Arrange
421
+ var values = new [ ] { - 10 , 20 } . AsQueryable ( ) ;
422
+
423
+ //Act
424
+ var result = values . Select < int > ( "it / 10" ) ;
425
+ var expected = values . Select ( i => i / 10 ) ;
426
+
427
+ //Assert
428
+ Check . That ( result ) . ContainsExactly ( expected ) ;
429
+ }
430
+
382
431
[ Fact ]
383
432
public void ExpressionTests_Double ( )
384
433
{
@@ -684,13 +733,6 @@ public void ExpressionTests_GuidNullable_CompareTo_GuidNullable()
684
733
Assert . Equal ( testValue , resultb . Single ( ) ) ;
685
734
}
686
735
687
- public class TestGuidNullClass
688
- {
689
- public Guid ? GuidNull { get ; set ; }
690
-
691
- public int Id { get ; set ; }
692
- }
693
-
694
736
[ Fact ]
695
737
public void ExpressionTests_Guid_CompareTo_Null ( )
696
738
{
@@ -1108,6 +1150,34 @@ public void ExpressionTests_Method_OneParam_With_user()
1108
1150
Assert . Equal ( expected . Count ( ) , result . Count ( ) ) ;
1109
1151
}
1110
1152
1153
+ [ Fact ]
1154
+ public void ExpressionTests_Modulo_Number ( )
1155
+ {
1156
+ //Arrange
1157
+ var values = new [ ] { - 10 , 20 } . AsQueryable ( ) ;
1158
+
1159
+ //Act
1160
+ var result = values . Select < int > ( "it % 3" ) ;
1161
+ var expected = values . Select ( i => i % 3 ) ;
1162
+
1163
+ //Assert
1164
+ Check . That ( result ) . ContainsExactly ( expected ) ;
1165
+ }
1166
+
1167
+ [ Fact ]
1168
+ public void ExpressionTests_Multiply_Number ( )
1169
+ {
1170
+ //Arrange
1171
+ var values = new [ ] { - 1 , 2 } . AsQueryable ( ) ;
1172
+
1173
+ //Act
1174
+ var result = values . Select < int > ( "it * 10" ) ;
1175
+ var expected = values . Select ( i => i * 10 ) ;
1176
+
1177
+ //Assert
1178
+ Check . That ( result ) . ContainsExactly ( expected ) ;
1179
+ }
1180
+
1111
1181
[ Fact ]
1112
1182
public void ExpressionTests_NullCoalescing ( )
1113
1183
{
@@ -1295,6 +1365,20 @@ public void ExpressionTests_StringConcatenation()
1295
1365
Assert . Equal ( "FirstNamex y" , resultAddWithAmpAndParams . First ( ) ) ;
1296
1366
}
1297
1367
1368
+ [ Fact ]
1369
+ public void ExpressionTests_Subtract_Number ( )
1370
+ {
1371
+ //Arrange
1372
+ var values = new [ ] { - 1 , 2 } . AsQueryable ( ) ;
1373
+
1374
+ //Act
1375
+ var result = values . Select < int > ( "it - 10" ) ;
1376
+ var expected = values . Select ( i => i - 10 ) ;
1377
+
1378
+ //Assert
1379
+ Check . That ( result ) . ContainsExactly ( expected ) ;
1380
+ }
1381
+
1298
1382
[ Fact ]
1299
1383
public void ExpressionTests_Sum ( )
1300
1384
{
0 commit comments