@@ -7,16 +7,93 @@ namespace System.Linq.Dynamic.Core.Tests.Parser;
7
7
8
8
public class MethodFinderTest
9
9
{
10
- [ Fact ( Skip = "867" ) ]
11
- public void MethodsOfDynamicLinqAndSystemLinqShouldBeEqual ( )
10
+ [ Fact ]
11
+ public void Method_ToString_OnDynamicLinq_And_SystemLinq_ShouldBeEqual ( )
12
12
{
13
+ // Arrange
14
+ var config = new ParsingConfig
15
+ {
16
+ AllowEqualsAndToStringMethodsOnObject = true
17
+ } ;
18
+
13
19
Expression < Func < int ? , string ? > > expr = x => x . ToString ( ) ;
14
-
20
+
15
21
var selector = "ToString()" ;
16
22
var prm = Parameter ( typeof ( int ? ) ) ;
17
- var parser = new ExpressionParser ( [ prm ] , selector , [ ] , ParsingConfig . Default ) ;
18
- var expr1 = parser . Parse ( null ) ;
19
-
20
- Assert . Equal ( ( ( MethodCallExpression ) expr . Body ) . Method . DeclaringType , ( ( MethodCallExpression ) expr1 ) . Method . DeclaringType ) ;
23
+ var parser = new ExpressionParser ( [ prm ] , selector , [ ] , config ) ;
24
+
25
+ // Act
26
+ var expression = parser . Parse ( null ) ;
27
+
28
+ // Assert
29
+ Assert . Equal ( ( ( MethodCallExpression ) expr . Body ) . Method . DeclaringType , ( ( MethodCallExpression ) expression ) . Method . DeclaringType ) ;
30
+ }
31
+
32
+ [ Fact ]
33
+ public void Method_Equals1_OnDynamicLinq_And_SystemLinq_ShouldBeEqual ( )
34
+ {
35
+ // Arrange
36
+ var config = new ParsingConfig
37
+ {
38
+ AllowEqualsAndToStringMethodsOnObject = true
39
+ } ;
40
+
41
+ Expression < Func < int ? , bool > > expr = x => x . Equals ( "a" ) ;
42
+
43
+ var selector = "Equals(\" a\" )" ;
44
+ var prm = Parameter ( typeof ( int ? ) ) ;
45
+ var parser = new ExpressionParser ( [ prm ] , selector , [ ] , config ) ;
46
+
47
+ // Act
48
+ var expression = parser . Parse ( null ) ;
49
+
50
+ // Assert
51
+ Assert . Equal ( ( ( MethodCallExpression ) expr . Body ) . Method . DeclaringType , ( ( MethodCallExpression ) expression ) . Method . DeclaringType ) ;
52
+ }
53
+
54
+ [ Fact ]
55
+ public void Method_Equals2_OnDynamicLinq_And_SystemLinq_ShouldBeEqual ( )
56
+ {
57
+ // Arrange
58
+ var config = new ParsingConfig
59
+ {
60
+ AllowEqualsAndToStringMethodsOnObject = true
61
+ } ;
62
+
63
+ // ReSharper disable once RedundantNameQualifier
64
+ Expression < Func < int ? , bool > > expr = x => object . Equals ( "a" , "b" ) ;
65
+
66
+ var selector = "object.Equals(\" a\" , \" b\" )" ;
67
+ var prm = Parameter ( typeof ( int ? ) ) ;
68
+ var parser = new ExpressionParser ( [ prm ] , selector , [ ] , config ) ;
69
+
70
+ // Act
71
+ var expression = parser . Parse ( null ) ;
72
+
73
+ // Assert
74
+ Assert . Equal ( ( ( MethodCallExpression ) expr . Body ) . Method . DeclaringType , ( ( MethodCallExpression ) expression ) . Method . DeclaringType ) ;
75
+ }
76
+
77
+ [ Fact ]
78
+ public void Method_ReferenceEquals_OnDynamicLinq_And_SystemLinq_ShouldBeEqual ( )
79
+ {
80
+ // Arrange
81
+ var config = new ParsingConfig
82
+ {
83
+ AllowEqualsAndToStringMethodsOnObject = true
84
+ } ;
85
+
86
+ // ReSharper disable once RedundantNameQualifier
87
+ Expression < Func < int ? , bool > > expr = x => object . ReferenceEquals ( "a" , "b" ) ;
88
+
89
+ var selector = "object.ReferenceEquals(\" a\" , \" b\" )" ;
90
+ var prm = Parameter ( typeof ( int ? ) ) ;
91
+ var parser = new ExpressionParser ( [ prm ] , selector , [ ] , config ) ;
92
+
93
+ // Act
94
+ var expression = parser . Parse ( null ) ;
95
+
96
+ // Assert
97
+ Assert . Equal ( ( ( MethodCallExpression ) expr . Body ) . Method . DeclaringType , ( ( MethodCallExpression ) expression ) . Method . DeclaringType ) ;
21
98
}
22
99
}
0 commit comments