@@ -114,6 +114,35 @@ function testFilterNormalViaController()
114114 function testFilterNormalViaClosure ()
115115 {
116116 $ uri = 'some_model ' ;
117+ $ routeResolverResult = [
118+ 'uses ' => MockModelController::class . '@ ' . 'index ' ,
119+ ];
120+ $ query = new ParameterBag ([
121+ "filter " => [
122+ "x " => [
123+ "is " => 1
124+ ]
125+ ],
126+ ]);
127+ $ requestParserOptions = [
128+ 'model_namespaces ' => [
129+ 'LIQRGV\QueryFilter\Mocks ' ,
130+ ]
131+ ];
132+
133+ $ request = $ this ->createRequestWithRouteArray ($ uri , $ routeResolverResult , $ query , $ requestParserOptions );
134+
135+ $ requestParser = new RequestParser ($ request );
136+ $ builder = $ requestParser ->getBuilder ();
137+
138+ $ this ->assertEquals ("select * from \"mock_models \" where \"x \" = ? " , $ builder ->toSql ());
139+ $ this ->assertEquals ([1 ], $ builder ->getBindings ());
140+ }
141+
142+ function testFilterRouteIsArray ()
143+ {
144+ $ uri = 'some_model ' ;
145+ $ controllerClass = MockModelController::class;
117146 $ query = new ParameterBag ([
118147 "filter " => [
119148 "x " => [
@@ -224,7 +253,11 @@ private function createClosureRequest($uri, $query, $requestParserOptions)
224253 {
225254 $ route = new Route ('GET ' , $ uri , []);
226255
227- $ request = new Request ();
256+ $ serverParam = [
257+ 'REQUEST_URI ' => $ uri ,
258+ ];
259+
260+ $ request = new Request ([], [], [], [], [], $ serverParam );
228261 $ request ->query = $ query ;
229262 $ request ->setRouteResolver (function () use ($ route ) {
230263 return $ route ;
@@ -236,4 +269,23 @@ private function createClosureRequest($uri, $query, $requestParserOptions)
236269
237270 return $ request ;
238271 }
272+
273+ private function createRequestWithRouteArray ($ uri , $ routeResolverResult , $ query , $ requestParserOptions )
274+ {
275+ $ serverParam = [
276+ 'REQUEST_URI ' => $ uri ,
277+ ];
278+
279+ $ request = new Request ([], [], [], [], [], $ serverParam );
280+ $ request ->query = $ query ;
281+ $ request ->setRouteResolver (function () use ($ routeResolverResult ) {
282+ return [
283+ true , $ routeResolverResult , []
284+ ];
285+ });
286+
287+ Config::request_parser ($ requestParserOptions );
288+
289+ return $ request ;
290+ }
239291}
0 commit comments