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);
 | 
						|
    }
 | 
						|
}
 |