49 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php declare(strict_types=1);
 | |
| 
 | |
| /**
 | |
|  * @license Apache 2.0
 | |
|  */
 | |
| 
 | |
| namespace OpenApi\Tests\Annotations;
 | |
| 
 | |
| use OpenApi\StaticAnalyser;
 | |
| use OpenApi\Tests\OpenApiTestCase;
 | |
| 
 | |
| class ItemsTest extends OpenApiTestCase
 | |
| {
 | |
|     public function testItemTypeArray()
 | |
|     {
 | |
|         $annotations = $this->parseComment('@OA\Items(type="array")');
 | |
|         $this->assertOpenApiLogEntryContains('@OA\Items() is required when @OA\Items() has type "array" in ');
 | |
|         $annotations[0]->validate();
 | |
|     }
 | |
| 
 | |
|     public function testSchemaTypeArray()
 | |
|     {
 | |
|         $annotations = $this->parseComment('@OA\Schema(type="array")');
 | |
|         $this->assertOpenApiLogEntryContains('@OA\Items() is required when @OA\Schema() has type "array" in ');
 | |
|         $annotations[0]->validate();
 | |
|     }
 | |
| 
 | |
|     public function testParentTypeArray()
 | |
|     {
 | |
|         $annotations = $this->parseComment('@OA\Items() parent type must be "array"');
 | |
|         $annotations[0]->validate();
 | |
|     }
 | |
| 
 | |
|     public function testRefDefinitionInProperty()
 | |
|     {
 | |
|         $analyser = new StaticAnalyser();
 | |
|         $analysis = $analyser->fromFile($this->fixtures('UsingVar.php')[0]);
 | |
|         $analysis->process();
 | |
| 
 | |
|         $this->assertCount(2, $analysis->openapi->components->schemas);
 | |
|         $this->assertEquals('UsingVar', $analysis->openapi->components->schemas[0]->schema);
 | |
|         $this->assertIsArray($analysis->openapi->components->schemas[0]->properties);
 | |
|         $this->assertCount(2, $analysis->openapi->components->schemas[0]->properties);
 | |
|         $this->assertEquals('name', $analysis->openapi->components->schemas[0]->properties[0]->property);
 | |
|         $this->assertEquals('createdAt', $analysis->openapi->components->schemas[0]->properties[1]->property);
 | |
|         $this->assertEquals('#/components/schemas/date', $analysis->openapi->components->schemas[0]->properties[1]->ref);
 | |
|     }
 | |
| }
 |