@@ -37,6 +37,21 @@ protected override void OnSetUp()
37
37
_edmModel = CreatEdmModel ( ) ;
38
38
}
39
39
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
+
40
55
[ TestCase ( "$apply=groupby((Customer/CustomerId))" , 89 ) ]
41
56
[ TestCase ( "$apply=groupby((Customer/CustomerId))&$orderby=Customer/CustomerId" , 89 ) ]
42
57
[ 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()
82
97
{
83
98
var builder = new ODataConventionModelBuilder ( ) ;
84
99
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 ) ;
93
108
94
109
var customerModel = builder . EntitySet < Customer > ( nameof ( Customer ) ) ;
95
110
customerModel . EntityType . HasKey ( o => o . CustomerId ) ;
@@ -98,6 +113,13 @@ private static IEdmModel CreatEdmModel()
98
113
customerModel . EntityType . ComplexProperty ( o => o . Address ) ;
99
114
customerModel . EntityType . HasMany ( o => o . Orders ) ;
100
115
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
+
101
123
var orderModel = builder . EntitySet < Order > ( nameof ( Order ) ) ;
102
124
orderModel . EntityType . HasKey ( o => o . OrderId ) ;
103
125
orderModel . EntityType . Property ( o => o . Freight ) ;
@@ -108,6 +130,7 @@ private static IEdmModel CreatEdmModel()
108
130
orderModel . EntityType . ComplexProperty ( o => o . ShippingAddress ) ;
109
131
orderModel . EntityType . HasRequired ( o => o . Customer ) ;
110
132
orderModel . EntityType . HasOptional ( o => o . Employee ) ;
133
+ orderModel . EntityType . HasMany ( o => o . OrderLines ) ;
111
134
112
135
var employeeModel = builder . EntitySet < Employee > ( nameof ( Employee ) ) ;
113
136
employeeModel . EntityType . HasKey ( o => o . EmployeeId ) ;
0 commit comments