@@ -37,6 +37,21 @@ protected override void OnSetUp()
3737 _edmModel = CreatEdmModel ( ) ;
3838 }
3939
40+ [ TestCase ( "$expand=Customer" , 830 , "Customer" ) ]
41+ [ TestCase ( "$expand=OrderLines" , 830 , "OrderLines" ) ]
42+ public async Task ExpandAsync ( string queryString , int expectedRows , string expandedProperty )
43+ {
44+ var query = ApplyFilter ( session . Query < Order > ( ) , queryString ) ;
45+ Assert . That ( query , Is . AssignableTo < IQueryable < ISelectExpandWrapper > > ( ) ) ;
46+
47+ var results = await ( ( ( IQueryable < ISelectExpandWrapper > ) query ) . ToListAsync ( ) ) ;
48+ Assert . That ( results , Has . Count . EqualTo ( expectedRows ) ) ;
49+
50+ var dict = results [ 0 ] . ToDictionary ( ) ;
51+ Assert . That ( dict . TryGetValue ( expandedProperty , out var value ) , Is . True ) ;
52+ Assert . That ( value , Is . Not . Null ) ;
53+ }
54+
4055 [ TestCase ( "$apply=groupby((Customer/CustomerId))" , 89 ) ]
4156 [ TestCase ( "$apply=groupby((Customer/CustomerId))&$orderby=Customer/CustomerId" , 89 ) ]
4257 [ TestCase ( "$apply=groupby((Customer/CustomerId, ShippingAddress/PostalCode), aggregate(OrderId with average as Average, Employee/EmployeeId with max as Max))" , 89 ) ]
@@ -82,14 +97,14 @@ private static IEdmModel CreatEdmModel()
8297 {
8398 var builder = new ODataConventionModelBuilder ( ) ;
8499
85- var adressModel = builder . ComplexType < Address > ( ) ;
86- adressModel . Property ( o => o . City ) ;
87- adressModel . Property ( o => o . Country ) ;
88- adressModel . Property ( o => o . Fax ) ;
89- adressModel . Property ( o => o . PhoneNumber ) ;
90- adressModel . Property ( o => o . PostalCode ) ;
91- adressModel . Property ( o => o . Region ) ;
92- adressModel . Property ( o => o . Street ) ;
100+ var addressModel = builder . ComplexType < Address > ( ) ;
101+ addressModel . Property ( o => o . City ) ;
102+ addressModel . Property ( o => o . Country ) ;
103+ addressModel . Property ( o => o . Fax ) ;
104+ addressModel . Property ( o => o . PhoneNumber ) ;
105+ addressModel . Property ( o => o . PostalCode ) ;
106+ addressModel . Property ( o => o . Region ) ;
107+ addressModel . Property ( o => o . Street ) ;
93108
94109 var customerModel = builder . EntitySet < Customer > ( nameof ( Customer ) ) ;
95110 customerModel . EntityType . HasKey ( o => o . CustomerId ) ;
@@ -98,6 +113,13 @@ private static IEdmModel CreatEdmModel()
98113 customerModel . EntityType . ComplexProperty ( o => o . Address ) ;
99114 customerModel . EntityType . HasMany ( o => o . Orders ) ;
100115
116+ var orderLineModel = builder . EntitySet < OrderLine > ( nameof ( OrderLine ) ) ;
117+ orderLineModel . EntityType . HasKey ( o => o . Id ) ;
118+ orderLineModel . EntityType . Property ( o => o . Discount ) ;
119+ orderLineModel . EntityType . Property ( o => o . Quantity ) ;
120+ orderLineModel . EntityType . Property ( o => o . UnitPrice ) ;
121+ orderLineModel . EntityType . HasRequired ( o => o . Order ) ;
122+
101123 var orderModel = builder . EntitySet < Order > ( nameof ( Order ) ) ;
102124 orderModel . EntityType . HasKey ( o => o . OrderId ) ;
103125 orderModel . EntityType . Property ( o => o . Freight ) ;
@@ -108,6 +130,7 @@ private static IEdmModel CreatEdmModel()
108130 orderModel . EntityType . ComplexProperty ( o => o . ShippingAddress ) ;
109131 orderModel . EntityType . HasRequired ( o => o . Customer ) ;
110132 orderModel . EntityType . HasOptional ( o => o . Employee ) ;
133+ orderModel . EntityType . HasMany ( o => o . OrderLines ) ;
111134
112135 var employeeModel = builder . EntitySet < Employee > ( nameof ( Employee ) ) ;
113136 employeeModel . EntityType . HasKey ( o => o . EmployeeId ) ;
0 commit comments