@@ -7,16 +7,70 @@ namespace System.Linq.Dynamic.Core.Tests.Parser;
77
88public class MethodFinderTest
99{
10- [ Fact ( Skip = "867" ) ]
11- public void MethodsOfDynamicLinqAndSystemLinqShouldBeEqual ( )
10+ [ Fact ]
11+ public void Method_ToString_OnDynamicLinq_And_SystemLinq_ShouldBeEqual ( )
1212 {
13+ // Arrange
14+ var config = new ParsingConfig
15+ {
16+ AllowEqualsAndToStringMethodsOnObject = true
17+ } ;
18+
1319 Expression < Func < int ? , string ? > > expr = x => x . ToString ( ) ;
14-
20+
1521 var selector = "ToString()" ;
1622 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 ) ;
2175 }
2276}
0 commit comments