11using NExtends . Expressions ;
22using System ;
33using System . Collections . Generic ;
4+ using System . Linq . Expressions ;
45using Xunit ;
56
67namespace NExtends . Tests . Expressions
@@ -20,9 +21,9 @@ public UserDate(User owner, DateTime date)
2021
2122 public class ExpressionReducerTests
2223 {
23- DateTime today = DateTime . Today ;
24- List < int > elements = new List < int > { 0 , 1 , 2 } ;
25- UserDate fakeUd = new UserDate ( new User ( ) , DateTime . Today ) ;
24+ readonly DateTime today = DateTime . Today ;
25+ readonly List < int > elements = new List < int > { 0 , 1 , 2 } ;
26+ readonly UserDate fakeUd = new UserDate ( new User ( ) , DateTime . Today ) ;
2627
2728 [ Fact ]
2829 public void ExpressionReducerEmptyLogic ( )
@@ -111,5 +112,22 @@ public void ExpressionReducerInterfaceMember()
111112
112113 Assert . Equal ( "u => (u.Content != null)" , result . ToString ( ) ) ;
113114 }
114- }
115+
116+ abstract class AbstractTruc
117+ {
118+ public User User { get ; set ; }
119+ }
120+
121+ class ConcreteBiduleContainer : AbstractTruc
122+ {
123+ public User User2 { get ; set ; }
124+ }
125+
126+ [ Fact ]
127+ public void ExpressionReducerAbstractClassMember ( )
128+ {
129+ var result = ExpressionReducer < ConcreteBiduleContainer , User > . Reduce ( bc => bc . User . Id != 0 && bc . User2 . Id != 23 , u => u . User , true ) ;
130+ Assert . Equal ( "u => (u.Id != 0)" , result . ToString ( ) ) ;
131+ }
132+ }
115133}
0 commit comments