tao-test/app/vendor/cebe/php-openapi/tests/WriterTest.php

191 lines
3.5 KiB
PHP

<?php
use cebe\openapi\spec\SecurityRequirement;
class WriterTest extends \PHPUnit\Framework\TestCase
{
private function createOpenAPI($merge = [])
{
return new \cebe\openapi\spec\OpenApi(array_merge([
'openapi' => '3.0.0',
'info' => [
'title' => 'Test API',
'version' => '1.0.0',
],
'paths' => [],
], $merge));
}
public function testWriteJson()
{
$openapi = $this->createOpenAPI();
$json = \cebe\openapi\Writer::writeToJson($openapi);
$this->assertEquals(preg_replace('~\R~', "\n", <<<JSON
{
"openapi": "3.0.0",
"info": {
"title": "Test API",
"version": "1.0.0"
},
"paths": {}
}
JSON
),
$json
);
}
public function testWriteJsonMofify()
{
$openapi = $this->createOpenAPI();
$openapi->paths['/test'] = new \cebe\openapi\spec\PathItem([
'description' => 'something'
]);
$json = \cebe\openapi\Writer::writeToJson($openapi);
$this->assertEquals(preg_replace('~\R~', "\n", <<<JSON
{
"openapi": "3.0.0",
"info": {
"title": "Test API",
"version": "1.0.0"
},
"paths": {
"\/test": {
"description": "something"
}
}
}
JSON
),
$json
);
}
public function testWriteYaml()
{
$openapi = $this->createOpenAPI();
$yaml = \cebe\openapi\Writer::writeToYaml($openapi);
$this->assertEquals(preg_replace('~\R~', "\n", <<<YAML
openapi: 3.0.0
info:
title: 'Test API'
version: 1.0.0
paths: { }
YAML
),
$yaml
);
}
public function testWriteEmptySecurityJson()
{
$openapi = $this->createOpenAPI([
'security' => [],
]);
$json = \cebe\openapi\Writer::writeToJson($openapi);
$this->assertEquals(preg_replace('~\R~', "\n", <<<JSON
{
"openapi": "3.0.0",
"info": {
"title": "Test API",
"version": "1.0.0"
},
"paths": {},
"security": []
}
JSON
),
$json
);
}
public function testWriteEmptySecurityYaml()
{
$openapi = $this->createOpenAPI([
'security' => [],
]);
$yaml = \cebe\openapi\Writer::writeToYaml($openapi);
$this->assertEquals(preg_replace('~\R~', "\n", <<<YAML
openapi: 3.0.0
info:
title: 'Test API'
version: 1.0.0
paths: { }
security: []
YAML
),
$yaml
);
}
public function testWriteEmptySecurityPartJson()
{
$openapi = $this->createOpenAPI([
'security' => [new SecurityRequirement(['Bearer' => []])],
]);
$json = \cebe\openapi\Writer::writeToJson($openapi);
$this->assertEquals(preg_replace('~\R~', "\n", <<<JSON
{
"openapi": "3.0.0",
"info": {
"title": "Test API",
"version": "1.0.0"
},
"paths": {},
"security": [
{
"Bearer": []
}
]
}
JSON
),
$json
);
}
public function testWriteEmptySecurityPartYaml()
{
$openapi = $this->createOpenAPI([
'security' => [new SecurityRequirement(['Bearer' => []])],
]);
$yaml = \cebe\openapi\Writer::writeToYaml($openapi);
$this->assertEquals(preg_replace('~\R~', "\n", <<<YAML
openapi: 3.0.0
info:
title: 'Test API'
version: 1.0.0
paths: { }
security:
-
Bearer: []
YAML
),
$yaml
);
}
}