Test the support of QueryParam::$map

This commit is contained in:
Guilhem Niot 2020-11-03 10:10:31 +01:00
parent dd8d3c00b6
commit 412eff9805
3 changed files with 10 additions and 4 deletions

View File

@ -25,6 +25,7 @@ class FOSRestController
/**
* @Route("/fosrest.{_format}", methods={"POST"})
* @QueryParam(name="foo", requirements=@Regex("/^\d+$/"))
* @QueryParam(name="mapped", map=true)
* @RequestParam(name="Barraa", key="bar", requirements="\d+")
* @RequestParam(name="baz", requirements=@IsTrue)
*/

View File

@ -39,6 +39,9 @@ class FOSRestTest extends WebTestCase
$this->assertEquals('\d+', $fooParameter->schema->pattern);
$this->assertEquals(OA\UNDEFINED, $fooParameter->schema->format);
$mappedParameter = $this->getParameter($operation, 'mapped[]', 'query');
$this->assertTrue($mappedParameter->explode);
$barProperty = $this->getProperty($bodySchema, 'bar');
$this->assertEquals('\d+', $barProperty->pattern);
$this->assertEquals(OA\UNDEFINED, $barProperty->format);

View File

@ -116,10 +116,12 @@ class WebTestCase extends BaseWebTestCase
public function assertHasParameter($name, $in, OA\AbstractAnnotation $annotation)
{
/* @var OA\Operation|OA\OpenApi $annotation */
$parameters = array_column(OA\UNDEFINED !== $annotation->parameters ? $annotation->parameters : [], 'name', 'in');
static::assertContains(
$name,
$parameters[$in] ?? [],
$parameters = array_filter(OA\UNDEFINED !== $annotation->parameters ? $annotation->parameters : [], function (OA\Parameter $parameter) use ($name, $in) {
return $parameter->name === $name && $parameter->in === $in;
});
static::assertNotEmpty(
$parameters,
sprintf('Failed asserting that parameter "%s" in "%s" does exist.', $name, $in)
);
}