Skip to content

Commit bb239d4

Browse files
committed
Add test when route is array (lumen)
1 parent 946d9d0 commit bb239d4

File tree

1 file changed

+53
-1
lines changed

1 file changed

+53
-1
lines changed

tests/RequestParserTest.php

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)