|
39 | 39 | use ApiPlatform\Tests\Fixtures\TestBundle\Entity\JsonSchemaResourceRelated; |
40 | 40 | use ApiPlatform\Tests\Fixtures\TestBundle\Entity\NoCollectionDummy; |
41 | 41 | use ApiPlatform\Tests\Fixtures\TestBundle\Entity\OverriddenOperationDummy; |
| 42 | +use ApiPlatform\Tests\Fixtures\TestBundle\Entity\ParameterOnProperties; |
42 | 43 | use ApiPlatform\Tests\Fixtures\TestBundle\Entity\Person; |
43 | 44 | use ApiPlatform\Tests\Fixtures\TestBundle\Entity\RamseyUuidDummy; |
44 | 45 | use ApiPlatform\Tests\Fixtures\TestBundle\Entity\RelatedDummy; |
@@ -104,6 +105,7 @@ public static function getResources(): array |
104 | 105 | WrappedResponseEntity::class, |
105 | 106 | ParentAttribute::class, |
106 | 107 | ChildAttribute::class, |
| 108 | + ParameterOnProperties::class, |
107 | 109 | ]; |
108 | 110 | } |
109 | 111 |
|
@@ -649,4 +651,35 @@ public function testOpenApiSchemaWithNormalizationAttributes(): void |
649 | 651 | $this->assertArrayNotHasKey('hiddenData', $childProperties); |
650 | 652 | $this->assertArrayNotHasKey('id', $childProperties); |
651 | 653 | } |
| 654 | + |
| 655 | + public function testOpenApiParameterOnProperties(): void |
| 656 | + { |
| 657 | + $response = self::createClient()->request('GET', '/docs', [ |
| 658 | + 'headers' => ['Accept' => 'application/vnd.openapi+json'], |
| 659 | + ]); |
| 660 | + |
| 661 | + $this->assertResponseIsSuccessful(); |
| 662 | + $json = $response->toArray(); |
| 663 | + |
| 664 | + $this->assertArrayHasKey('paths', $json); |
| 665 | + $this->assertArrayHasKey('/parameter_on_properties', $json['paths']); |
| 666 | + $this->assertArrayHasKey('get', $json['paths']['/parameter_on_properties']); |
| 667 | + $this->assertArrayHasKey('parameters', $json['paths']['/parameter_on_properties']['get']); |
| 668 | + |
| 669 | + $parameters = $json['paths']['/parameter_on_properties']['get']['parameters']; |
| 670 | + |
| 671 | + $this->assertCount(1, $parameters); |
| 672 | + $qnameParameter = $parameters[0]; |
| 673 | + |
| 674 | + $this->assertNotNull($qnameParameter); |
| 675 | + $this->assertSame('qname[]', $qnameParameter['name']); |
| 676 | + $this->assertSame('query', $qnameParameter['in']); |
| 677 | + $this->assertSame('ParameterOnProperties qname', $qnameParameter['description']); |
| 678 | + $this->assertFalse($qnameParameter['required']); |
| 679 | + $this->assertFalse($qnameParameter['deprecated']); |
| 680 | + $this->assertSame('array', $qnameParameter['schema']['type']); |
| 681 | + $this->assertSame('string', $qnameParameter['schema']['items']['type']); |
| 682 | + $this->assertSame('deepObject', $qnameParameter['style']); |
| 683 | + $this->assertTrue($qnameParameter['explode']); |
| 684 | + } |
652 | 685 | } |
0 commit comments