@@ -24,6 +24,14 @@ public void TestFindMemberExpressionReference()
24
24
Assert . AreEqual ( "Name" , property ) ;
25
25
}
26
26
27
+ [ Test ]
28
+ public void TestFindMemberExpressionReferenceCast ( )
29
+ {
30
+ Expression < Func < Person , string > > e = ( Person p ) => ( ( CustomPerson ) p ) . MiddleName ;
31
+ string property = ExpressionProcessor . FindMemberProjection ( e . Body ) . ToString ( ) ;
32
+ Assert . AreEqual ( "MiddleName" , property ) ;
33
+ }
34
+
27
35
[ Test ]
28
36
public void TestFindMemberExpressionReferenceAlias ( )
29
37
{
@@ -33,6 +41,15 @@ public void TestFindMemberExpressionReferenceAlias()
33
41
Assert . AreEqual ( "personAlias.Name" , property ) ;
34
42
}
35
43
44
+ [ Test ]
45
+ public void TestFindMemberExpressionReferenceCastAlias ( )
46
+ {
47
+ Person personAlias = null ;
48
+ Expression < Func < string > > e = ( ) => ( ( CustomPerson ) personAlias ) . MiddleName ;
49
+ string property = ExpressionProcessor . FindMemberProjection ( e . Body ) . ToString ( ) ;
50
+ Assert . AreEqual ( "personAlias.MiddleName" , property ) ;
51
+ }
52
+
36
53
[ Test ]
37
54
public void TestFindMemberExpressionComponent ( )
38
55
{
@@ -157,17 +174,19 @@ public void TestFindMemberExpressionConstants()
157
174
{
158
175
var children = new List < Child > { new Child { Nickname = "test nickname" } } ;
159
176
Person person =
160
- new Person ( )
177
+ new CustomPerson ( )
161
178
{
162
179
Name = "test name" ,
180
+ MiddleName = "test middle name" ,
163
181
NullableAge = 4 ,
164
182
Children = children ,
165
183
} ;
166
184
167
185
Assert . That ( Projection ( ( ) => person . Name ) , Is . EqualTo ( "test name" ) ) ;
186
+ Assert . That ( Projection ( ( ) => ( ( CustomPerson ) person ) . MiddleName ) , Is . EqualTo ( "test middle name" ) ) ;
168
187
Assert . That ( Projection ( ( ) => "test name" ) , Is . EqualTo ( "test name" ) ) ;
169
188
Assert . That ( Projection ( ( ) => person . NullableAge . Value ) , Is . EqualTo ( 4 ) ) ;
170
- Assert . That ( Projection ( ( ) => person . GetType ( ) ) , Is . EqualTo ( typeof ( Person ) ) ) ;
189
+ Assert . That ( Projection ( ( ) => person . GetType ( ) ) , Is . EqualTo ( typeof ( CustomPerson ) ) ) ;
171
190
Assert . That ( Projection ( ( ) => person . Children . First ( ) . Nickname ) , Is . EqualTo ( "test nickname" ) ) ;
172
191
Assert . That ( Projection ( ( ) => children [ 0 ] . Nickname ) , Is . EqualTo ( "test nickname" ) ) ;
173
192
}
0 commit comments