@@ -100,7 +100,7 @@ protected async Task<IReadOnlyCollection<TFeedPackage>> GetCollection<TFeedPacka
100100 string requestPath )
101101 where TFeedPackage : class
102102 {
103- var queryResult = InvokeODataFeedControllerAction ( controllerAction , requestPath ) ;
103+ var queryResult = ( QueryResult < TFeedPackage > ) GetActionResult ( controllerAction , requestPath ) ;
104104
105105 return await GetValueFromQueryResult ( queryResult ) ;
106106 }
@@ -110,7 +110,7 @@ protected async Task<IReadOnlyCollection<TFeedPackage>> GetCollection<TFeedPacka
110110 string requestPath )
111111 where TFeedPackage : class
112112 {
113- var queryResult = await InvokeODataFeedControllerActionAsync ( asyncControllerAction , requestPath ) ;
113+ var queryResult = ( QueryResult < TFeedPackage > ) await GetActionResultAsync ( asyncControllerAction , requestPath ) ;
114114
115115 return await GetValueFromQueryResult ( queryResult ) ;
116116 }
@@ -120,7 +120,7 @@ protected async Task<int> GetInt<TFeedPackage>(
120120 string requestPath )
121121 where TFeedPackage : class
122122 {
123- var queryResult = InvokeODataFeedControllerAction ( controllerAction , requestPath ) ;
123+ var queryResult = ( QueryResult < TFeedPackage > ) GetActionResult ( controllerAction , requestPath ) ;
124124
125125 return int . Parse ( await GetValueFromQueryResult ( queryResult ) ) ;
126126 }
@@ -130,11 +130,43 @@ protected async Task<int> GetInt<TFeedPackage>(
130130 string requestPath )
131131 where TFeedPackage : class
132132 {
133- var queryResult = await InvokeODataFeedControllerActionAsync ( asyncControllerAction , requestPath ) ;
133+ var queryResult = ( QueryResult < TFeedPackage > ) await GetActionResultAsync ( asyncControllerAction , requestPath ) ;
134134
135135 return int . Parse ( await GetValueFromQueryResult ( queryResult ) ) ;
136136 }
137137
138+ protected static ODataQueryContext CreateODataQueryContext < TFeedPackage > ( )
139+ where TFeedPackage : class
140+ {
141+ var oDataModelBuilder = new ODataConventionModelBuilder ( ) ;
142+ oDataModelBuilder . EntitySet < TFeedPackage > ( "Packages" ) ;
143+
144+ return new ODataQueryContext ( oDataModelBuilder . GetEdmModel ( ) , typeof ( TFeedPackage ) ) ;
145+ }
146+
147+ protected IHttpActionResult GetActionResult < TFeedPackage > (
148+ Func < TController , ODataQueryOptions < TFeedPackage > , IHttpActionResult > controllerAction ,
149+ string requestPath )
150+ where TFeedPackage : class
151+ {
152+ var request = new HttpRequestMessage ( HttpMethod . Get , $ "{ _siteRoot } { requestPath } ") ;
153+ var controller = CreateTestableODataFeedController ( request ) ;
154+
155+ return controllerAction ( controller , new ODataQueryOptions < TFeedPackage > ( CreateODataQueryContext < TFeedPackage > ( ) , request ) ) ;
156+ }
157+
158+ protected async Task < IHttpActionResult > GetActionResultAsync < TFeedPackage > (
159+ Func < TController , ODataQueryOptions < TFeedPackage > , Task < IHttpActionResult > > asyncControllerAction ,
160+ string requestPath )
161+ where TFeedPackage : class
162+ {
163+ var request = new HttpRequestMessage ( HttpMethod . Get , $ "{ _siteRoot } { requestPath } ") ;
164+ var controller = CreateTestableODataFeedController ( request ) ;
165+
166+ return await asyncControllerAction ( controller ,
167+ new ODataQueryOptions < TFeedPackage > ( CreateODataQueryContext < TFeedPackage > ( ) , request ) ) ;
168+ }
169+
138170 private static IQueryable < Package > CreatePackagesQueryable ( )
139171 {
140172 var packageRegistration = new PackageRegistration { Id = TestPackageId } ;
@@ -227,15 +259,6 @@ private static IQueryable<Package> CreatePackagesQueryable()
227259 return list . AsQueryable ( ) ;
228260 }
229261
230- protected static ODataQueryContext CreateODataQueryContext < TFeedPackage > ( )
231- where TFeedPackage : class
232- {
233- var oDataModelBuilder = new ODataConventionModelBuilder ( ) ;
234- oDataModelBuilder . EntitySet < TFeedPackage > ( "Packages" ) ;
235-
236- return new ODataQueryContext ( oDataModelBuilder . GetEdmModel ( ) , typeof ( TFeedPackage ) ) ;
237- }
238-
239262 private static async Task < dynamic > GetValueFromQueryResult < TEntity > ( QueryResult < TEntity > queryResult )
240263 {
241264 var httpResponseMessage = await queryResult . ExecuteAsync ( CancellationToken . None ) ;
@@ -256,29 +279,5 @@ private static async Task<dynamic> GetValueFromQueryResult<TEntity>(QueryResult<
256279 return ( ( IQueryable < TEntity > ) objectContent . Value ) . ToList ( ) ;
257280 }
258281 }
259-
260- private async Task < QueryResult < TFeedPackage > > InvokeODataFeedControllerActionAsync < TFeedPackage > (
261- Func < TController , ODataQueryOptions < TFeedPackage > , Task < IHttpActionResult > > asyncControllerAction ,
262- string requestPath )
263- where TFeedPackage : class
264- {
265- var request = new HttpRequestMessage ( HttpMethod . Get , $ "{ _siteRoot } { requestPath } ") ;
266- var controller = CreateTestableODataFeedController ( request ) ;
267-
268- return ( QueryResult < TFeedPackage > ) await asyncControllerAction ( controller ,
269- new ODataQueryOptions < TFeedPackage > ( CreateODataQueryContext < TFeedPackage > ( ) , request ) ) ;
270- }
271-
272- private QueryResult < TFeedPackage > InvokeODataFeedControllerAction < TFeedPackage > (
273- Func < TController , ODataQueryOptions < TFeedPackage > , IHttpActionResult > controllerAction ,
274- string requestPath )
275- where TFeedPackage : class
276- {
277- var request = new HttpRequestMessage ( HttpMethod . Get , $ "{ _siteRoot } { requestPath } ") ;
278- var controller = CreateTestableODataFeedController ( request ) ;
279-
280- return ( QueryResult < TFeedPackage > ) controllerAction ( controller ,
281- new ODataQueryOptions < TFeedPackage > ( CreateODataQueryContext < TFeedPackage > ( ) , request ) ) ;
282- }
283282 }
284283}
0 commit comments