forked from loafle/openapi-generator-original
[Slim4] Add ref support to Data Mocker (#4932)
* [Slim4] Add new method to Mocker interface * [Slim4] Add implementation and tests for new method * [Slim4] Add test fixture to encrease code coverage * [Slim4] Add ref support to mockArray method * [Slim4] Add mockFromRef method * [Slim4] Add ref support to mockObject method * [Slim4] Add ModelInterface * [Slim4] Refresh samples * [Slim4] Add ref support to mockFromSchema method * [Slim4] Run all test suites by default test command As it turnes out to generate coverage report for a whole project I need to run all test suites at once. * [Slim4] Fix enum option of string mocking
This commit is contained in:
committed by
William Cheng
parent
2d24d42e65
commit
6dcdf5c311
@@ -44,6 +44,8 @@ public class PhpSlim4ServerCodegen extends PhpSlimServerCodegen {
|
||||
protected String mockPackage = "";
|
||||
protected String utilsDirName = "Utils";
|
||||
protected String utilsPackage = "";
|
||||
protected String interfacesDirName = "Interfaces";
|
||||
protected String interfacesPackage = "";
|
||||
|
||||
public PhpSlim4ServerCodegen() {
|
||||
super();
|
||||
@@ -54,6 +56,7 @@ public class PhpSlim4ServerCodegen extends PhpSlimServerCodegen {
|
||||
|
||||
mockPackage = invokerPackage + "\\" + mockDirName;
|
||||
utilsPackage = invokerPackage + "\\" + utilsDirName;
|
||||
interfacesPackage = invokerPackage + "\\" + interfacesDirName;
|
||||
outputFolder = "generated-code" + File.separator + "slim4";
|
||||
embeddedTemplateDir = templateDir = "php-slim4-server";
|
||||
|
||||
@@ -92,6 +95,7 @@ public class PhpSlim4ServerCodegen extends PhpSlimServerCodegen {
|
||||
// Update mockPackage and utilsPackage
|
||||
mockPackage = invokerPackage + "\\" + mockDirName;
|
||||
utilsPackage = invokerPackage + "\\" + utilsDirName;
|
||||
interfacesPackage = invokerPackage + "\\" + interfacesDirName;
|
||||
}
|
||||
|
||||
// make mock src path available in mustache template
|
||||
@@ -104,6 +108,11 @@ public class PhpSlim4ServerCodegen extends PhpSlimServerCodegen {
|
||||
additionalProperties.put("utilsSrcPath", "./" + toSrcPath(utilsPackage, srcBasePath));
|
||||
additionalProperties.put("utilsTestPath", "./" + toSrcPath(utilsPackage, testBasePath));
|
||||
|
||||
// same for interfaces package
|
||||
additionalProperties.put("interfacesPackage", interfacesPackage);
|
||||
additionalProperties.put("interfacesSrcPath", "./" + toSrcPath(interfacesPackage, srcBasePath));
|
||||
additionalProperties.put("interfacesTestPath", "./" + toSrcPath(interfacesPackage, testBasePath));
|
||||
|
||||
if (additionalProperties.containsKey(PSR7_IMPLEMENTATION)) {
|
||||
this.setPsr7Implementation((String) additionalProperties.get(PSR7_IMPLEMENTATION));
|
||||
}
|
||||
@@ -147,6 +156,9 @@ public class PhpSlim4ServerCodegen extends PhpSlimServerCodegen {
|
||||
supportingFiles.add(new SupportingFile("string_utils_trait_test.mustache", toSrcPath(utilsPackage, testBasePath), toTraitName("StringUtils") + "Test.php"));
|
||||
supportingFiles.add(new SupportingFile("model_utils_trait.mustache", toSrcPath(utilsPackage, srcBasePath), toTraitName("ModelUtils") + ".php"));
|
||||
supportingFiles.add(new SupportingFile("model_utils_trait_test.mustache", toSrcPath(utilsPackage, testBasePath), toTraitName("ModelUtils") + "Test.php"));
|
||||
|
||||
// model interface
|
||||
supportingFiles.add(new SupportingFile("model_interface.mustache", toSrcPath(interfacesPackage, srcBasePath), toInterfaceName("Model") + ".php"));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -41,10 +41,7 @@
|
||||
},
|
||||
"scripts": {
|
||||
"test": [
|
||||
"@test-apis",
|
||||
"@test-models",
|
||||
"@test-mock",
|
||||
"@test-utils"
|
||||
"phpunit"
|
||||
],
|
||||
"test-apis": "phpunit --testsuite Apis",
|
||||
"test-models": "phpunit --testsuite Models",
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace {{modelPackage}};
|
||||
|
||||
use {{interfacesPackage}}\{{interfaceNamePrefix}}Model{{interfaceNameSuffix}};
|
||||
|
||||
/**
|
||||
* {{classname}}
|
||||
*
|
||||
@@ -23,12 +25,27 @@ namespace {{modelPackage}};
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class {{classname}}
|
||||
class {{classname}} implements {{interfaceNamePrefix}}Model{{interfaceNameSuffix}}
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{{{modelJson}}}
|
||||
SCHEMA;
|
||||
{{#vars}}
|
||||
|
||||
/** @var {{dataType}} ${{name}} {{#description}}{{description}}{{/description}}*/
|
||||
private ${{name}};
|
||||
{{/vars}}
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
{{/model}}{{/models}}
|
||||
54
modules/openapi-generator/src/main/resources/php-slim4-server/model_interface.mustache
vendored
Normal file
54
modules/openapi-generator/src/main/resources/php-slim4-server/model_interface.mustache
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* {{interfaceNamePrefix}}Model{{interfaceNameSuffix}}
|
||||
*
|
||||
* PHP version 7.1
|
||||
*
|
||||
* @package {{invokerPackage}}
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
|
||||
/**{{#apiInfo}}{{#appName}}
|
||||
* {{{appName}}}
|
||||
*
|
||||
{{/appName}}
|
||||
{{#appDescription}}
|
||||
* {{{appDescription}}}
|
||||
{{/appDescription}}
|
||||
{{#version}}
|
||||
* The version of the OpenAPI document: {{{version}}}
|
||||
{{/version}}
|
||||
{{#infoEmail}}
|
||||
* Contact: {{{infoEmail}}}
|
||||
{{/infoEmail}}
|
||||
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||
*/
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the openapi generator program.
|
||||
* https://github.com/openapitools/openapi-generator
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
namespace {{interfacesPackage}};
|
||||
|
||||
/**
|
||||
* {{interfaceNamePrefix}}Model{{interfaceNameSuffix}} Class Doc Comment
|
||||
*
|
||||
* @package {{interfacesPackage}}
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
interface {{interfaceNamePrefix}}Model{{interfaceNameSuffix}}
|
||||
{
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false);
|
||||
}
|
||||
{{/apiInfo}}
|
||||
@@ -95,5 +95,17 @@ class {{classname}}Test extends TestCase
|
||||
{
|
||||
}
|
||||
{{/vars}}
|
||||
|
||||
/**
|
||||
* Test getOpenApiSchema static method
|
||||
* @covers ::getOpenApiSchema
|
||||
*/
|
||||
public function testGetOpenApiSchema()
|
||||
{
|
||||
$schemaObject = {{classname}}::getOpenApiSchema();
|
||||
$schemaArr = {{classname}}::getOpenApiSchema(true);
|
||||
$this->assertIsObject($schemaObject);
|
||||
$this->assertIsArray($schemaArr);
|
||||
}
|
||||
}
|
||||
{{/model}}{{/models}}
|
||||
@@ -34,6 +34,7 @@
|
||||
namespace {{mockPackage}};
|
||||
|
||||
use {{mockPackage}}\{{interfaceNamePrefix}}OpenApiDataMocker{{interfaceNameSuffix}} as IMocker;
|
||||
use {{utilsPackage}}\{{traitNamePrefix}}ModelUtils{{traitNameSuffix}};
|
||||
use StdClass;
|
||||
use InvalidArgumentException;
|
||||
|
||||
@@ -46,6 +47,8 @@ use InvalidArgumentException;
|
||||
*/
|
||||
final class OpenApiDataMocker implements IMocker
|
||||
{
|
||||
use {{traitNamePrefix}}ModelUtils{{traitNameSuffix}};
|
||||
|
||||
/**
|
||||
* Mocks OpenApi Data.
|
||||
* @see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#data-types
|
||||
@@ -74,7 +77,8 @@ final class OpenApiDataMocker implements IMocker
|
||||
case IMocker::DATA_TYPE_STRING:
|
||||
$minLength = $options['minLength'] ?? 0;
|
||||
$maxLength = $options['maxLength'] ?? null;
|
||||
return $this->mockString($dataFormat, $minLength, $maxLength);
|
||||
$enum = $options['enum'] ?? null;
|
||||
return $this->mockString($dataFormat, $minLength, $maxLength, $enum);
|
||||
case IMocker::DATA_TYPE_BOOLEAN:
|
||||
return $this->mockBoolean();
|
||||
case IMocker::DATA_TYPE_ARRAY:
|
||||
@@ -276,11 +280,13 @@ final class OpenApiDataMocker implements IMocker
|
||||
$options = $this->extractSchemaProperties($items);
|
||||
$dataType = $options['type'];
|
||||
$dataFormat = $options['format'] ?? null;
|
||||
$ref = $options['$ref'] ?? null;
|
||||
|
||||
// always genarate smallest possible array to avoid huge JSON responses
|
||||
// always generate smallest possible array to avoid huge JSON responses
|
||||
$arrSize = ($maxSize < 1) ? $maxSize : max($minSize, 1);
|
||||
while (count($arr) < $arrSize) {
|
||||
$arr[] = $this->mock($dataType, $dataFormat, $options);
|
||||
$data = $this->mockFromRef($ref);
|
||||
$arr[] = ($data) ? $data : $this->mock($dataType, $dataFormat, $options);
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
@@ -360,12 +366,62 @@ final class OpenApiDataMocker implements IMocker
|
||||
$options = $this->extractSchemaProperties($propValue);
|
||||
$dataType = $options['type'];
|
||||
$dataFormat = $options['dataFormat'] ?? null;
|
||||
$obj->$propName = $this->mock($dataType, $dataFormat, $options);
|
||||
$ref = $options['$ref'] ?? null;
|
||||
$data = $this->mockFromRef($ref);
|
||||
$obj->$propName = ($data) ? $data : $this->mock($dataType, $dataFormat, $options);
|
||||
}
|
||||
|
||||
return $obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mocks OpenApi Data from schema.
|
||||
*
|
||||
* @param array|object $schema OpenAPI schema
|
||||
*
|
||||
* @throws \InvalidArgumentException when invalid arguments passed
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function mockFromSchema($schema)
|
||||
{
|
||||
$props = $this->extractSchemaProperties($schema);
|
||||
if (array_key_exists('$ref', $props) && !empty($props['$ref'])) {
|
||||
return $this->mockFromRef($props['$ref']);
|
||||
} elseif ($props['type'] === null) {
|
||||
throw new InvalidArgumentException('"schema" must be object or assoc array with "type" property');
|
||||
}
|
||||
return $this->mock($props['type'], $props['format'], $props);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mock data by referenced schema.
|
||||
* TODO: this method will return model instance, not an StdClass
|
||||
*
|
||||
* @param string|null $ref Ref to model, eg. #/components/schemas/User
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function mockFromRef($ref)
|
||||
{
|
||||
$data = null;
|
||||
if (is_string($ref) && !empty($ref)) {
|
||||
$refName = static::getSimpleRef($ref);
|
||||
$modelName = static::toModelName($refName);
|
||||
$modelClass = '{{modelPackage}}\\' . $modelName;
|
||||
if (!class_exists($modelClass) || !method_exists($modelClass, 'getOpenApiSchema')) {
|
||||
throw new InvalidArgumentException(sprintf(
|
||||
'Model %s not found or method %s doesn\'t exist',
|
||||
$modelClass,
|
||||
$modelClass . '::getOpenApiSchema'
|
||||
));
|
||||
}
|
||||
$data = $this->mockFromSchema($modelClass::getOpenApiSchema(true));
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal Extract OAS properties from array or object.
|
||||
* @codeCoverageIgnore
|
||||
@@ -402,6 +458,7 @@ final class OpenApiDataMocker implements IMocker
|
||||
'additionalProperties',
|
||||
'required',
|
||||
'example',
|
||||
'$ref',
|
||||
] as $propName
|
||||
) {
|
||||
if (is_array($val) && array_key_exists($propName, $val)) {
|
||||
|
||||
@@ -237,5 +237,28 @@ interface {{interfaceNamePrefix}}OpenApiDataMocker{{interfaceNameSuffix}}
|
||||
$additionalProperties = null,
|
||||
$required = null
|
||||
);
|
||||
|
||||
/**
|
||||
* Mocks OpenApi Data from schema.
|
||||
*
|
||||
* @param array|object $schema OpenAPI schema
|
||||
*
|
||||
* @throws \InvalidArgumentException when invalid arguments passed
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function mockFromSchema($schema);
|
||||
|
||||
/**
|
||||
* Mock data by referenced schema.
|
||||
* TODO: this method will return model instance, not an StdClass
|
||||
*
|
||||
* @param string|null $ref Ref to model, eg. #/components/schemas/User
|
||||
*
|
||||
* @throws \InvalidArgumentException when invalid arguments passed
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function mockFromRef($ref);
|
||||
}
|
||||
{{/apiInfo}}
|
||||
|
||||
@@ -38,6 +38,7 @@ use {{mockPackage}}\{{interfaceNamePrefix}}OpenApiDataMocker{{interfaceNameSuffi
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use PHPUnit\Framework\Constraint\IsType;
|
||||
use StdClass;
|
||||
use DateTime;
|
||||
|
||||
/**
|
||||
* OpenApiDataMockerTest Class Doc Comment
|
||||
@@ -103,6 +104,18 @@ class OpenApiDataMockerTest extends TestCase
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::mock
|
||||
*/
|
||||
public function testMockWithStringEnumOptions()
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$string = $mocker->mock(IMocker::DATA_TYPE_STRING, null, [
|
||||
'enum' => ['foobar', 'foobaz', 'helloworld'],
|
||||
]);
|
||||
$this->assertContains($string, ['foobar', 'foobaz', 'helloworld']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockIntegerCorrectArguments
|
||||
* @covers ::mockInteger
|
||||
@@ -647,6 +660,45 @@ class OpenApiDataMockerTest extends TestCase
|
||||
'maxItems less than minItems' => [
|
||||
$intItems, 5, 2, false,
|
||||
],
|
||||
'items with ref to unknown class' => [
|
||||
['$ref' => '#/components/schemas/UnknownClass'], null, null, false,
|
||||
],
|
||||
'items with ref to class without getOpenApiSchema method' => [
|
||||
['$ref' => '#/components/schemas/ClassWithoutGetSchemaMethod'], null, null, false,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockArrayWithRefArguments
|
||||
* @covers ::mockArray
|
||||
*/
|
||||
public function testMockArrayWithRef($items, $expectedStructure)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$arr = $mocker->mockArray($items);
|
||||
$this->assertIsArray($arr);
|
||||
$this->assertCount(1, $arr);
|
||||
foreach ($arr as $item) {
|
||||
// TODO: replace with assertInstanceOf assertion
|
||||
$this->assertInternalType(IsType::TYPE_OBJECT, $item);
|
||||
foreach ($expectedStructure as $expectedProp => $expectedType) {
|
||||
$this->assertInternalType($expectedType, $item->$expectedProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function provideMockArrayWithRefArguments()
|
||||
{
|
||||
return [
|
||||
'items with ref to CatRefTestClass' => [
|
||||
['$ref' => '#/components/schemas/CatRefTestClass'],
|
||||
[
|
||||
'className' => IsType::TYPE_STRING,
|
||||
'color' => IsType::TYPE_STRING,
|
||||
'declawed' => IsType::TYPE_BOOL,
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -731,6 +783,9 @@ class OpenApiDataMockerTest extends TestCase
|
||||
'properties cannot be a string' => [
|
||||
'foobar', 0, 10, false, null,
|
||||
],
|
||||
'property value cannot be a string' => [
|
||||
['username' => 'foobar'], 0, 10, false, null,
|
||||
],
|
||||
'minProperties is not integer' => [
|
||||
[], 3.12, null, false, null,
|
||||
],
|
||||
@@ -769,5 +824,220 @@ class OpenApiDataMockerTest extends TestCase
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::mockObject
|
||||
*/
|
||||
public function testMockObjectWithReferencedProps()
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$obj = $mocker->mockObject(
|
||||
(object) [
|
||||
'cat' => [
|
||||
'$ref' => '#/components/schemas/CatRefTestClass',
|
||||
],
|
||||
]
|
||||
);
|
||||
$this->assertInternalType(IsType::TYPE_OBJECT, $obj->cat);
|
||||
$this->assertInternalType(IsType::TYPE_STRING, $obj->cat->className);
|
||||
$this->assertInternalType(IsType::TYPE_STRING, $obj->cat->color);
|
||||
$this->assertInternalType(IsType::TYPE_BOOL, $obj->cat->declawed);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockFromSchemaCorrectArguments
|
||||
* @covers ::mockFromSchema
|
||||
*/
|
||||
public function testMockFromSchemaWithCorrectArguments($schema, $expectedType)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$data = $mocker->mockFromSchema($schema);
|
||||
$this->assertInternalType($expectedType, $data);
|
||||
}
|
||||
|
||||
public function provideMockFromSchemaCorrectArguments()
|
||||
{
|
||||
return [
|
||||
'string from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_STRING],
|
||||
IsType::TYPE_STRING,
|
||||
],
|
||||
'string from array' => [
|
||||
['type' => IMocker::DATA_TYPE_STRING],
|
||||
IsType::TYPE_STRING,
|
||||
],
|
||||
'integer from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_INTEGER],
|
||||
IsType::TYPE_INT,
|
||||
],
|
||||
'integer from array' => [
|
||||
['type' => IMocker::DATA_TYPE_INTEGER],
|
||||
IsType::TYPE_INT,
|
||||
],
|
||||
'number from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_NUMBER],
|
||||
IsType::TYPE_FLOAT,
|
||||
],
|
||||
'number from array' => [
|
||||
['type' => IMocker::DATA_TYPE_NUMBER],
|
||||
IsType::TYPE_FLOAT,
|
||||
],
|
||||
'string from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_STRING],
|
||||
IsType::TYPE_STRING,
|
||||
],
|
||||
'string from array' => [
|
||||
['type' => IMocker::DATA_TYPE_STRING],
|
||||
IsType::TYPE_STRING,
|
||||
],
|
||||
'boolean from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_BOOLEAN],
|
||||
IsType::TYPE_BOOL,
|
||||
],
|
||||
'boolean from array' => [
|
||||
['type' => IMocker::DATA_TYPE_BOOLEAN],
|
||||
IsType::TYPE_BOOL,
|
||||
],
|
||||
'array of strings from object' => [
|
||||
(object) [
|
||||
'type' => IMocker::DATA_TYPE_ARRAY,
|
||||
'items' => ['type' => IMocker::DATA_TYPE_STRING],
|
||||
],
|
||||
IsType::TYPE_ARRAY,
|
||||
],
|
||||
'array of strings from array' => [
|
||||
[
|
||||
'type' => IMocker::DATA_TYPE_ARRAY,
|
||||
'items' => ['type' => IMocker::DATA_TYPE_STRING],
|
||||
],
|
||||
IsType::TYPE_ARRAY,
|
||||
],
|
||||
'object with username prop from object' => [
|
||||
(object) [
|
||||
'type' => IMocker::DATA_TYPE_OBJECT,
|
||||
'properties' => ['username' => ['type' => IMocker::DATA_TYPE_STRING]],
|
||||
],
|
||||
IsType::TYPE_OBJECT,
|
||||
],
|
||||
'object with username prop from array' => [
|
||||
[
|
||||
'type' => IMocker::DATA_TYPE_OBJECT,
|
||||
'properties' => ['username' => ['type' => IMocker::DATA_TYPE_STRING]],
|
||||
],
|
||||
IsType::TYPE_OBJECT,
|
||||
],
|
||||
'referenced class' => [
|
||||
['$ref' => '#/components/schemas/CatRefTestClass'],
|
||||
IsType::TYPE_OBJECT,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockFromSchemaInvalidArguments
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @covers ::mockFromSchema
|
||||
*/
|
||||
public function testMockFromSchemaWithInvalidArguments($schema)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$data = $mocker->mockFromSchema($schema);
|
||||
}
|
||||
|
||||
|
||||
public function provideMockFromSchemaInvalidArguments()
|
||||
{
|
||||
return [
|
||||
'null' => [null],
|
||||
'numeric' => [3.14],
|
||||
'empty array' => [[]],
|
||||
'empty object' => [(object) []],
|
||||
'string' => ['foobar'],
|
||||
'DateTime object' => [new DateTime()],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockFromRefCorrectArguments
|
||||
* @covers ::mockFromRef
|
||||
*/
|
||||
public function testMockFromRefWithCorrectArguments($ref, $expectedStructure)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$data = $mocker->mockFromRef($ref);
|
||||
foreach ($expectedStructure as $expectedProp => $expectedType) {
|
||||
$this->assertInternalType($expectedType, $data->$expectedProp);
|
||||
}
|
||||
}
|
||||
|
||||
public function provideMockFromRefCorrectArguments()
|
||||
{
|
||||
return [
|
||||
'CatRefTestClass model' => [
|
||||
'#/components/schemas/CatRefTestClass',
|
||||
[
|
||||
'className' => IsType::TYPE_STRING,
|
||||
'color' => IsType::TYPE_STRING,
|
||||
'declawed' => IsType::TYPE_BOOL,
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockFromRefInvalidArguments
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @covers ::mockFromRef
|
||||
*/
|
||||
public function testMockFromRefWithInvalidArguments($ref)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$data = $mocker->mockFromRef($ref);
|
||||
}
|
||||
|
||||
public function provideMockFromRefInvalidArguments()
|
||||
{
|
||||
return [
|
||||
'ref to unknown class' => ['#/components/schemas/UnknownClass'],
|
||||
'ref to class without getOpenApiSchema method' => ['#/components/schemas/ClassWithoutGetSchemaMethod'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
namespace {{modelPackage}};
|
||||
|
||||
// phpcs:disable PSR1.Classes.ClassDeclaration.MultipleClasses
|
||||
final class CatRefTestClass
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "className" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"className" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"color" : {
|
||||
"type" : "string",
|
||||
"default" : "red"
|
||||
},
|
||||
"declawed" : {
|
||||
"type" : "boolean"
|
||||
}
|
||||
},
|
||||
"discriminator" : {
|
||||
"propertyName" : "className"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
public static function getOpenApiSchema()
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, true);
|
||||
}
|
||||
}
|
||||
|
||||
final class ClassWithoutGetSchemaMethod
|
||||
{
|
||||
}
|
||||
{{/apiInfo}}
|
||||
|
||||
@@ -28,10 +28,7 @@
|
||||
},
|
||||
"scripts": {
|
||||
"test": [
|
||||
"@test-apis",
|
||||
"@test-models",
|
||||
"@test-mock",
|
||||
"@test-utils"
|
||||
"phpunit"
|
||||
],
|
||||
"test-apis": "phpunit --testsuite Apis",
|
||||
"test-models": "phpunit --testsuite Models",
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* ModelInterface
|
||||
*
|
||||
* PHP version 7.1
|
||||
*
|
||||
* @package OpenAPIServer
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
|
||||
/**
|
||||
* OpenAPI Petstore
|
||||
*
|
||||
* This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\
|
||||
* The version of the OpenAPI document: 1.0.0
|
||||
* Generated by: https://github.com/openapitools/openapi-generator.git
|
||||
*/
|
||||
|
||||
/**
|
||||
* NOTE: This class is auto generated by the openapi generator program.
|
||||
* https://github.com/openapitools/openapi-generator
|
||||
* Do not edit the class manually.
|
||||
*/
|
||||
namespace OpenAPIServer\Interfaces;
|
||||
|
||||
/**
|
||||
* ModelInterface Class Doc Comment
|
||||
*
|
||||
* @package OpenAPIServer\Interfaces
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
interface ModelInterface
|
||||
{
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false);
|
||||
}
|
||||
@@ -26,6 +26,7 @@
|
||||
namespace OpenAPIServer\Mock;
|
||||
|
||||
use OpenAPIServer\Mock\OpenApiDataMockerInterface as IMocker;
|
||||
use OpenAPIServer\Utils\ModelUtilsTrait;
|
||||
use StdClass;
|
||||
use InvalidArgumentException;
|
||||
|
||||
@@ -38,6 +39,8 @@ use InvalidArgumentException;
|
||||
*/
|
||||
final class OpenApiDataMocker implements IMocker
|
||||
{
|
||||
use ModelUtilsTrait;
|
||||
|
||||
/**
|
||||
* Mocks OpenApi Data.
|
||||
* @see https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#data-types
|
||||
@@ -66,7 +69,8 @@ final class OpenApiDataMocker implements IMocker
|
||||
case IMocker::DATA_TYPE_STRING:
|
||||
$minLength = $options['minLength'] ?? 0;
|
||||
$maxLength = $options['maxLength'] ?? null;
|
||||
return $this->mockString($dataFormat, $minLength, $maxLength);
|
||||
$enum = $options['enum'] ?? null;
|
||||
return $this->mockString($dataFormat, $minLength, $maxLength, $enum);
|
||||
case IMocker::DATA_TYPE_BOOLEAN:
|
||||
return $this->mockBoolean();
|
||||
case IMocker::DATA_TYPE_ARRAY:
|
||||
@@ -268,11 +272,13 @@ final class OpenApiDataMocker implements IMocker
|
||||
$options = $this->extractSchemaProperties($items);
|
||||
$dataType = $options['type'];
|
||||
$dataFormat = $options['format'] ?? null;
|
||||
$ref = $options['$ref'] ?? null;
|
||||
|
||||
// always genarate smallest possible array to avoid huge JSON responses
|
||||
// always generate smallest possible array to avoid huge JSON responses
|
||||
$arrSize = ($maxSize < 1) ? $maxSize : max($minSize, 1);
|
||||
while (count($arr) < $arrSize) {
|
||||
$arr[] = $this->mock($dataType, $dataFormat, $options);
|
||||
$data = $this->mockFromRef($ref);
|
||||
$arr[] = ($data) ? $data : $this->mock($dataType, $dataFormat, $options);
|
||||
}
|
||||
return $arr;
|
||||
}
|
||||
@@ -352,12 +358,62 @@ final class OpenApiDataMocker implements IMocker
|
||||
$options = $this->extractSchemaProperties($propValue);
|
||||
$dataType = $options['type'];
|
||||
$dataFormat = $options['dataFormat'] ?? null;
|
||||
$obj->$propName = $this->mock($dataType, $dataFormat, $options);
|
||||
$ref = $options['$ref'] ?? null;
|
||||
$data = $this->mockFromRef($ref);
|
||||
$obj->$propName = ($data) ? $data : $this->mock($dataType, $dataFormat, $options);
|
||||
}
|
||||
|
||||
return $obj;
|
||||
}
|
||||
|
||||
/**
|
||||
* Mocks OpenApi Data from schema.
|
||||
*
|
||||
* @param array|object $schema OpenAPI schema
|
||||
*
|
||||
* @throws \InvalidArgumentException when invalid arguments passed
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function mockFromSchema($schema)
|
||||
{
|
||||
$props = $this->extractSchemaProperties($schema);
|
||||
if (array_key_exists('$ref', $props) && !empty($props['$ref'])) {
|
||||
return $this->mockFromRef($props['$ref']);
|
||||
} elseif ($props['type'] === null) {
|
||||
throw new InvalidArgumentException('"schema" must be object or assoc array with "type" property');
|
||||
}
|
||||
return $this->mock($props['type'], $props['format'], $props);
|
||||
}
|
||||
|
||||
/**
|
||||
* Mock data by referenced schema.
|
||||
* TODO: this method will return model instance, not an StdClass
|
||||
*
|
||||
* @param string|null $ref Ref to model, eg. #/components/schemas/User
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function mockFromRef($ref)
|
||||
{
|
||||
$data = null;
|
||||
if (is_string($ref) && !empty($ref)) {
|
||||
$refName = static::getSimpleRef($ref);
|
||||
$modelName = static::toModelName($refName);
|
||||
$modelClass = 'OpenAPIServer\Model\\' . $modelName;
|
||||
if (!class_exists($modelClass) || !method_exists($modelClass, 'getOpenApiSchema')) {
|
||||
throw new InvalidArgumentException(sprintf(
|
||||
'Model %s not found or method %s doesn\'t exist',
|
||||
$modelClass,
|
||||
$modelClass . '::getOpenApiSchema'
|
||||
));
|
||||
}
|
||||
$data = $this->mockFromSchema($modelClass::getOpenApiSchema(true));
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @internal Extract OAS properties from array or object.
|
||||
* @codeCoverageIgnore
|
||||
@@ -394,6 +450,7 @@ final class OpenApiDataMocker implements IMocker
|
||||
'additionalProperties',
|
||||
'required',
|
||||
'example',
|
||||
'$ref',
|
||||
] as $propName
|
||||
) {
|
||||
if (is_array($val) && array_key_exists($propName, $val)) {
|
||||
|
||||
@@ -229,4 +229,27 @@ interface OpenApiDataMockerInterface
|
||||
$additionalProperties = null,
|
||||
$required = null
|
||||
);
|
||||
|
||||
/**
|
||||
* Mocks OpenApi Data from schema.
|
||||
*
|
||||
* @param array|object $schema OpenAPI schema
|
||||
*
|
||||
* @throws \InvalidArgumentException when invalid arguments passed
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function mockFromSchema($schema);
|
||||
|
||||
/**
|
||||
* Mock data by referenced schema.
|
||||
* TODO: this method will return model instance, not an StdClass
|
||||
*
|
||||
* @param string|null $ref Ref to model, eg. #/components/schemas/User
|
||||
*
|
||||
* @throws \InvalidArgumentException when invalid arguments passed
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function mockFromRef($ref);
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* AdditionalPropertiesAnyType
|
||||
*
|
||||
@@ -23,9 +25,35 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class AdditionalPropertiesAnyType
|
||||
class AdditionalPropertiesAnyType implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"name" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties" : {
|
||||
"type" : "object",
|
||||
"properties" : { }
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $name */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* AdditionalPropertiesArray
|
||||
*
|
||||
@@ -23,9 +25,38 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class AdditionalPropertiesArray
|
||||
class AdditionalPropertiesArray implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"name" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "object",
|
||||
"properties" : { }
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $name */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* AdditionalPropertiesBoolean
|
||||
*
|
||||
@@ -23,9 +25,34 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class AdditionalPropertiesBoolean
|
||||
class AdditionalPropertiesBoolean implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"name" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties" : {
|
||||
"type" : "boolean"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $name */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* AdditionalPropertiesClass
|
||||
*
|
||||
@@ -23,8 +25,88 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class AdditionalPropertiesClass
|
||||
class AdditionalPropertiesClass implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"map_string" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"map_number" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "number"
|
||||
}
|
||||
},
|
||||
"map_integer" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "integer"
|
||||
}
|
||||
},
|
||||
"map_boolean" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "boolean"
|
||||
}
|
||||
},
|
||||
"map_array_integer" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "integer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_array_anytype" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "object",
|
||||
"properties" : { }
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_map_string" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_map_anytype" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "object",
|
||||
"properties" : { }
|
||||
}
|
||||
}
|
||||
},
|
||||
"anytype_1" : {
|
||||
"type" : "object",
|
||||
"properties" : { }
|
||||
},
|
||||
"anytype_2" : {
|
||||
"type" : "object"
|
||||
},
|
||||
"anytype_3" : {
|
||||
"type" : "object",
|
||||
"properties" : { }
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var map[string,string] $mapString */
|
||||
private $mapString;
|
||||
@@ -58,4 +140,16 @@ class AdditionalPropertiesClass
|
||||
|
||||
/** @var object $anytype3 */
|
||||
private $anytype3;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* AdditionalPropertiesInteger
|
||||
*
|
||||
@@ -23,9 +25,34 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class AdditionalPropertiesInteger
|
||||
class AdditionalPropertiesInteger implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"name" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties" : {
|
||||
"type" : "integer"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $name */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* AdditionalPropertiesNumber
|
||||
*
|
||||
@@ -23,9 +25,34 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class AdditionalPropertiesNumber
|
||||
class AdditionalPropertiesNumber implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"name" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties" : {
|
||||
"type" : "number"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $name */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* AdditionalPropertiesObject
|
||||
*
|
||||
@@ -23,9 +25,38 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class AdditionalPropertiesObject
|
||||
class AdditionalPropertiesObject implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"name" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "object",
|
||||
"properties" : { }
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $name */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* AdditionalPropertiesString
|
||||
*
|
||||
@@ -23,9 +25,34 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class AdditionalPropertiesString
|
||||
class AdditionalPropertiesString implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"name" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"additionalProperties" : {
|
||||
"type" : "string"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $name */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Animal
|
||||
*
|
||||
@@ -23,12 +25,42 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Animal
|
||||
class Animal implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "className" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"className" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"color" : {
|
||||
"type" : "string",
|
||||
"default" : "red"
|
||||
}
|
||||
},
|
||||
"discriminator" : {
|
||||
"propertyName" : "className"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $className */
|
||||
private $className;
|
||||
|
||||
/** @var string $color */
|
||||
private $color;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* ApiResponse
|
||||
*
|
||||
@@ -23,8 +25,25 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class ApiResponse
|
||||
class ApiResponse implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"code" : {
|
||||
"type" : "integer",
|
||||
"format" : "int32"
|
||||
},
|
||||
"type" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"message" : {
|
||||
"type" : "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $code */
|
||||
private $code;
|
||||
@@ -34,4 +53,16 @@ class ApiResponse
|
||||
|
||||
/** @var string $message */
|
||||
private $message;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* ArrayOfArrayOfNumberOnly
|
||||
*
|
||||
@@ -23,9 +25,37 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class ArrayOfArrayOfNumberOnly
|
||||
class ArrayOfArrayOfNumberOnly implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"ArrayArrayNumber" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "number"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var float[][] $arrayArrayNumber */
|
||||
private $arrayArrayNumber;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* ArrayOfNumberOnly
|
||||
*
|
||||
@@ -23,9 +25,34 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class ArrayOfNumberOnly
|
||||
class ArrayOfNumberOnly implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"ArrayNumber" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "number"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var float[] $arrayNumber */
|
||||
private $arrayNumber;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* ArrayTest
|
||||
*
|
||||
@@ -23,8 +25,40 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class ArrayTest
|
||||
class ArrayTest implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"array_of_string" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"array_array_of_integer" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
}
|
||||
}
|
||||
},
|
||||
"array_array_of_model" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"$ref" : "#/components/schemas/ReadOnlyFirst"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string[] $arrayOfString */
|
||||
private $arrayOfString;
|
||||
@@ -34,4 +68,16 @@ class ArrayTest
|
||||
|
||||
/** @var \OpenAPIServer\Model\ReadOnlyFirst[][] $arrayArrayOfModel */
|
||||
private $arrayArrayOfModel;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* BigCat
|
||||
*
|
||||
@@ -23,8 +25,17 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class BigCat
|
||||
class BigCat implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"allOf" : [ {
|
||||
"$ref" : "#/components/schemas/Cat"
|
||||
}, {
|
||||
"$ref" : "#/components/schemas/BigCat_allOf"
|
||||
} ]
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $className */
|
||||
private $className;
|
||||
@@ -37,4 +48,16 @@ class BigCat
|
||||
|
||||
/** @var string $kind */
|
||||
private $kind;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* BigCatAllOf
|
||||
*
|
||||
@@ -23,9 +25,31 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class BigCatAllOf
|
||||
class BigCatAllOf implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"properties" : {
|
||||
"kind" : {
|
||||
"type" : "string",
|
||||
"enum" : [ "lions", "tigers", "leopards", "jaguars" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $kind */
|
||||
private $kind;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Capitalization
|
||||
*
|
||||
@@ -23,8 +25,34 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Capitalization
|
||||
class Capitalization implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"smallCamel" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"CapitalCamel" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"small_Snake" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"Capital_Snake" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"SCA_ETH_Flow_Points" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"ATT_NAME" : {
|
||||
"type" : "string",
|
||||
"description" : "Name of the pet\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $smallCamel */
|
||||
private $smallCamel;
|
||||
@@ -43,4 +71,16 @@ class Capitalization
|
||||
|
||||
/** @var string $aTTNAME Name of the pet*/
|
||||
private $aTTNAME;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Cat
|
||||
*
|
||||
@@ -23,8 +25,17 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Cat
|
||||
class Cat implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"allOf" : [ {
|
||||
"$ref" : "#/components/schemas/Animal"
|
||||
}, {
|
||||
"$ref" : "#/components/schemas/Cat_allOf"
|
||||
} ]
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $className */
|
||||
private $className;
|
||||
@@ -34,4 +45,16 @@ class Cat
|
||||
|
||||
/** @var bool $declawed */
|
||||
private $declawed;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* CatAllOf
|
||||
*
|
||||
@@ -23,9 +25,30 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class CatAllOf
|
||||
class CatAllOf implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"properties" : {
|
||||
"declawed" : {
|
||||
"type" : "boolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var bool $declawed */
|
||||
private $declawed;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Category
|
||||
*
|
||||
@@ -23,12 +25,43 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Category
|
||||
class Category implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "name" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"id" : {
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"name" : {
|
||||
"type" : "string",
|
||||
"default" : "default-name"
|
||||
}
|
||||
},
|
||||
"xml" : {
|
||||
"name" : "Category"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $id */
|
||||
private $id;
|
||||
|
||||
/** @var string $name */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* ClassModel
|
||||
*
|
||||
@@ -23,9 +25,32 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class ClassModel
|
||||
class ClassModel implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"_class" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"description" : "Model for testing model with \"_class\" property"
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $class */
|
||||
private $class;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Client
|
||||
*
|
||||
@@ -23,9 +25,31 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Client
|
||||
class Client implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"client" : {
|
||||
"type" : "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $client */
|
||||
private $client;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Dog
|
||||
*
|
||||
@@ -23,8 +25,17 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Dog
|
||||
class Dog implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"allOf" : [ {
|
||||
"$ref" : "#/components/schemas/Animal"
|
||||
}, {
|
||||
"$ref" : "#/components/schemas/Dog_allOf"
|
||||
} ]
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $className */
|
||||
private $className;
|
||||
@@ -34,4 +45,16 @@ class Dog
|
||||
|
||||
/** @var string $breed */
|
||||
private $breed;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* DogAllOf
|
||||
*
|
||||
@@ -23,9 +25,30 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class DogAllOf
|
||||
class DogAllOf implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"properties" : {
|
||||
"breed" : {
|
||||
"type" : "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $breed */
|
||||
private $breed;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* EnumArrays
|
||||
*
|
||||
@@ -23,12 +25,42 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class EnumArrays
|
||||
class EnumArrays implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"just_symbol" : {
|
||||
"type" : "string",
|
||||
"enum" : [ ">=", "$" ]
|
||||
},
|
||||
"array_enum" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "string",
|
||||
"enum" : [ "fish", "crab" ]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $justSymbol */
|
||||
private $justSymbol;
|
||||
|
||||
/** @var string[] $arrayEnum */
|
||||
private $arrayEnum;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* EnumClass
|
||||
*
|
||||
@@ -23,6 +25,25 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class EnumClass
|
||||
class EnumClass implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "string",
|
||||
"default" : "-efg",
|
||||
"enum" : [ "_abc", "-efg", "(xyz)" ]
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* EnumTest
|
||||
*
|
||||
@@ -23,8 +25,37 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class EnumTest
|
||||
class EnumTest implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "enum_string_required" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"enum_string" : {
|
||||
"type" : "string",
|
||||
"enum" : [ "UPPER", "lower", "" ]
|
||||
},
|
||||
"enum_string_required" : {
|
||||
"type" : "string",
|
||||
"enum" : [ "UPPER", "lower", "" ]
|
||||
},
|
||||
"enum_integer" : {
|
||||
"type" : "integer",
|
||||
"format" : "int32",
|
||||
"enum" : [ 1, -1 ]
|
||||
},
|
||||
"enum_number" : {
|
||||
"type" : "number",
|
||||
"format" : "double",
|
||||
"enum" : [ 1.1, -1.2 ]
|
||||
},
|
||||
"outerEnum" : {
|
||||
"$ref" : "#/components/schemas/OuterEnum"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $enumString */
|
||||
private $enumString;
|
||||
@@ -40,4 +71,16 @@ class EnumTest
|
||||
|
||||
/** @var \OpenAPIServer\Model\OuterEnum $outerEnum */
|
||||
private $outerEnum;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* File
|
||||
*
|
||||
@@ -23,9 +25,33 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class File
|
||||
class File implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"sourceURI" : {
|
||||
"type" : "string",
|
||||
"description" : "Test capitalization"
|
||||
}
|
||||
},
|
||||
"description" : "Must be named `File` for test."
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $sourceURI Test capitalization*/
|
||||
private $sourceURI;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* FileSchemaTestClass
|
||||
*
|
||||
@@ -23,12 +25,40 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class FileSchemaTestClass
|
||||
class FileSchemaTestClass implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"file" : {
|
||||
"$ref" : "#/components/schemas/File"
|
||||
},
|
||||
"files" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"$ref" : "#/components/schemas/File"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var \OpenAPIServer\Model\File $file */
|
||||
private $file;
|
||||
|
||||
/** @var \OpenAPIServer\Model\File[] $files */
|
||||
private $files;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* FormatTest
|
||||
*
|
||||
@@ -23,8 +25,84 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class FormatTest
|
||||
class FormatTest implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "byte", "date", "number", "password" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"integer" : {
|
||||
"maximum" : 1E+2,
|
||||
"minimum" : 1E+1,
|
||||
"type" : "integer"
|
||||
},
|
||||
"int32" : {
|
||||
"maximum" : 2E+2,
|
||||
"minimum" : 2E+1,
|
||||
"type" : "integer",
|
||||
"format" : "int32"
|
||||
},
|
||||
"int64" : {
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"number" : {
|
||||
"maximum" : 543.2,
|
||||
"minimum" : 32.1,
|
||||
"type" : "number"
|
||||
},
|
||||
"float" : {
|
||||
"maximum" : 987.6,
|
||||
"minimum" : 54.3,
|
||||
"type" : "number",
|
||||
"format" : "float"
|
||||
},
|
||||
"double" : {
|
||||
"maximum" : 123.4,
|
||||
"minimum" : 67.8,
|
||||
"type" : "number",
|
||||
"format" : "double"
|
||||
},
|
||||
"string" : {
|
||||
"pattern" : "/[a-z]/i",
|
||||
"type" : "string"
|
||||
},
|
||||
"byte" : {
|
||||
"pattern" : "^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$",
|
||||
"type" : "string",
|
||||
"format" : "byte"
|
||||
},
|
||||
"binary" : {
|
||||
"type" : "string",
|
||||
"format" : "binary"
|
||||
},
|
||||
"date" : {
|
||||
"type" : "string",
|
||||
"format" : "date"
|
||||
},
|
||||
"dateTime" : {
|
||||
"type" : "string",
|
||||
"format" : "date-time"
|
||||
},
|
||||
"uuid" : {
|
||||
"type" : "string",
|
||||
"format" : "uuid",
|
||||
"example" : "72f98069-206d-4f12-9f12-3d1e525a8e84"
|
||||
},
|
||||
"password" : {
|
||||
"maxLength" : 64,
|
||||
"minLength" : 10,
|
||||
"type" : "string",
|
||||
"format" : "password"
|
||||
},
|
||||
"BigDecimal" : {
|
||||
"type" : "string",
|
||||
"format" : "number"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $integer */
|
||||
private $integer;
|
||||
@@ -67,4 +145,16 @@ class FormatTest
|
||||
|
||||
/** @var BigDecimal $bigDecimal */
|
||||
private $bigDecimal;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* HasOnlyReadOnly
|
||||
*
|
||||
@@ -23,12 +25,39 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class HasOnlyReadOnly
|
||||
class HasOnlyReadOnly implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"bar" : {
|
||||
"type" : "string",
|
||||
"readOnly" : true
|
||||
},
|
||||
"foo" : {
|
||||
"type" : "string",
|
||||
"readOnly" : true
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $bar */
|
||||
private $bar;
|
||||
|
||||
/** @var string $foo */
|
||||
private $foo;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* MapTest
|
||||
*
|
||||
@@ -23,8 +25,40 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class MapTest
|
||||
class MapTest implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"map_map_of_string" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"map_of_enum_string" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "string",
|
||||
"enum" : [ "UPPER", "lower" ]
|
||||
}
|
||||
},
|
||||
"direct_map" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"type" : "boolean"
|
||||
}
|
||||
},
|
||||
"indirect_map" : {
|
||||
"$ref" : "#/components/schemas/StringBooleanMap"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var map[string,map[string,string]] $mapMapOfString */
|
||||
private $mapMapOfString;
|
||||
@@ -37,4 +71,16 @@ class MapTest
|
||||
|
||||
/** @var map[string,bool] $indirectMap */
|
||||
private $indirectMap;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* MixedPropertiesAndAdditionalPropertiesClass
|
||||
*
|
||||
@@ -23,8 +25,29 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class MixedPropertiesAndAdditionalPropertiesClass
|
||||
class MixedPropertiesAndAdditionalPropertiesClass implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"uuid" : {
|
||||
"type" : "string",
|
||||
"format" : "uuid"
|
||||
},
|
||||
"dateTime" : {
|
||||
"type" : "string",
|
||||
"format" : "date-time"
|
||||
},
|
||||
"map" : {
|
||||
"type" : "object",
|
||||
"additionalProperties" : {
|
||||
"$ref" : "#/components/schemas/Animal"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $uuid */
|
||||
private $uuid;
|
||||
@@ -34,4 +57,16 @@ class MixedPropertiesAndAdditionalPropertiesClass
|
||||
|
||||
/** @var map[string,\OpenAPIServer\Model\Animal] $map */
|
||||
private $map;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Model200Response
|
||||
*
|
||||
@@ -23,12 +25,42 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Model200Response
|
||||
class Model200Response implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"name" : {
|
||||
"type" : "integer",
|
||||
"format" : "int32"
|
||||
},
|
||||
"class" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"description" : "Model for testing model name starting with number",
|
||||
"xml" : {
|
||||
"name" : "Name"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $name */
|
||||
private $name;
|
||||
|
||||
/** @var string $class */
|
||||
private $class;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* ModelList
|
||||
*
|
||||
@@ -23,9 +25,31 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class ModelList
|
||||
class ModelList implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"123-list" : {
|
||||
"type" : "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $_123list */
|
||||
private $_123list;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* ModelReturn
|
||||
*
|
||||
@@ -23,9 +25,36 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class ModelReturn
|
||||
class ModelReturn implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"return" : {
|
||||
"type" : "integer",
|
||||
"format" : "int32"
|
||||
}
|
||||
},
|
||||
"description" : "Model for testing reserved words",
|
||||
"xml" : {
|
||||
"name" : "Return"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $return */
|
||||
private $return;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Name
|
||||
*
|
||||
@@ -23,8 +25,36 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Name
|
||||
class Name implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "name" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"name" : {
|
||||
"type" : "integer",
|
||||
"format" : "int32"
|
||||
},
|
||||
"snake_case" : {
|
||||
"type" : "integer",
|
||||
"format" : "int32",
|
||||
"readOnly" : true
|
||||
},
|
||||
"property" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"123Number" : {
|
||||
"type" : "integer",
|
||||
"readOnly" : true
|
||||
}
|
||||
},
|
||||
"description" : "Model for testing model name same as property name",
|
||||
"xml" : {
|
||||
"name" : "Name"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $name */
|
||||
private $name;
|
||||
@@ -37,4 +67,16 @@ class Name
|
||||
|
||||
/** @var int $_123number */
|
||||
private $_123number;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* NumberOnly
|
||||
*
|
||||
@@ -23,9 +25,31 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class NumberOnly
|
||||
class NumberOnly implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"JustNumber" : {
|
||||
"type" : "number"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var float $justNumber */
|
||||
private $justNumber;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Order
|
||||
*
|
||||
@@ -23,8 +25,43 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Order
|
||||
class Order implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"id" : {
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"petId" : {
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"quantity" : {
|
||||
"type" : "integer",
|
||||
"format" : "int32"
|
||||
},
|
||||
"shipDate" : {
|
||||
"type" : "string",
|
||||
"format" : "date-time"
|
||||
},
|
||||
"status" : {
|
||||
"type" : "string",
|
||||
"description" : "Order Status",
|
||||
"enum" : [ "placed", "approved", "delivered" ]
|
||||
},
|
||||
"complete" : {
|
||||
"type" : "boolean",
|
||||
"default" : false
|
||||
}
|
||||
},
|
||||
"xml" : {
|
||||
"name" : "Order"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $id */
|
||||
private $id;
|
||||
@@ -43,4 +80,16 @@ class Order
|
||||
|
||||
/** @var bool $complete */
|
||||
private $complete;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* OuterComposite
|
||||
*
|
||||
@@ -23,8 +25,24 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class OuterComposite
|
||||
class OuterComposite implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"my_number" : {
|
||||
"$ref" : "#/components/schemas/OuterNumber"
|
||||
},
|
||||
"my_string" : {
|
||||
"$ref" : "#/components/schemas/OuterString"
|
||||
},
|
||||
"my_boolean" : {
|
||||
"$ref" : "#/components/schemas/OuterBoolean"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var float $myNumber */
|
||||
private $myNumber;
|
||||
@@ -34,4 +52,16 @@ class OuterComposite
|
||||
|
||||
/** @var bool $myBoolean */
|
||||
private $myBoolean;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* OuterEnum
|
||||
*
|
||||
@@ -23,6 +25,24 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class OuterEnum
|
||||
class OuterEnum implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "string",
|
||||
"enum" : [ "placed", "approved", "delivered" ]
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Pet
|
||||
*
|
||||
@@ -23,8 +25,56 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Pet
|
||||
class Pet implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "name", "photoUrls" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"id" : {
|
||||
"type" : "integer",
|
||||
"format" : "int64",
|
||||
"x-is-unique" : true
|
||||
},
|
||||
"category" : {
|
||||
"$ref" : "#/components/schemas/Category"
|
||||
},
|
||||
"name" : {
|
||||
"type" : "string",
|
||||
"example" : "doggie"
|
||||
},
|
||||
"photoUrls" : {
|
||||
"type" : "array",
|
||||
"xml" : {
|
||||
"name" : "photoUrl",
|
||||
"wrapped" : true
|
||||
},
|
||||
"items" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"tags" : {
|
||||
"type" : "array",
|
||||
"xml" : {
|
||||
"name" : "tag",
|
||||
"wrapped" : true
|
||||
},
|
||||
"items" : {
|
||||
"$ref" : "#/components/schemas/Tag"
|
||||
}
|
||||
},
|
||||
"status" : {
|
||||
"type" : "string",
|
||||
"description" : "pet status in the store",
|
||||
"enum" : [ "available", "pending", "sold" ]
|
||||
}
|
||||
},
|
||||
"xml" : {
|
||||
"name" : "Pet"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $id */
|
||||
private $id;
|
||||
@@ -43,4 +93,16 @@ class Pet
|
||||
|
||||
/** @var string $status pet status in the store*/
|
||||
private $status;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* ReadOnlyFirst
|
||||
*
|
||||
@@ -23,12 +25,38 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class ReadOnlyFirst
|
||||
class ReadOnlyFirst implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"bar" : {
|
||||
"type" : "string",
|
||||
"readOnly" : true
|
||||
},
|
||||
"baz" : {
|
||||
"type" : "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $bar */
|
||||
private $bar;
|
||||
|
||||
/** @var string $baz */
|
||||
private $baz;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* SpecialModelName
|
||||
*
|
||||
@@ -23,9 +25,35 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class SpecialModelName
|
||||
class SpecialModelName implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"$special[property.name]" : {
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
}
|
||||
},
|
||||
"xml" : {
|
||||
"name" : "$special[model.name]"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $specialPropertyName */
|
||||
private $specialPropertyName;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* Tag
|
||||
*
|
||||
@@ -23,12 +25,41 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class Tag
|
||||
class Tag implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"id" : {
|
||||
"type" : "integer",
|
||||
"format" : "int64"
|
||||
},
|
||||
"name" : {
|
||||
"type" : "string"
|
||||
}
|
||||
},
|
||||
"xml" : {
|
||||
"name" : "Tag"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $id */
|
||||
private $id;
|
||||
|
||||
/** @var string $name */
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* TypeHolderDefault
|
||||
*
|
||||
@@ -23,8 +25,36 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class TypeHolderDefault
|
||||
class TypeHolderDefault implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "array_item", "bool_item", "integer_item", "number_item", "string_item" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"string_item" : {
|
||||
"type" : "string",
|
||||
"default" : "what"
|
||||
},
|
||||
"number_item" : {
|
||||
"type" : "number"
|
||||
},
|
||||
"integer_item" : {
|
||||
"type" : "integer"
|
||||
},
|
||||
"bool_item" : {
|
||||
"type" : "boolean",
|
||||
"default" : true
|
||||
},
|
||||
"array_item" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $stringItem */
|
||||
private $stringItem;
|
||||
@@ -40,4 +70,16 @@ class TypeHolderDefault
|
||||
|
||||
/** @var int[] $arrayItem */
|
||||
private $arrayItem;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* TypeHolderExample
|
||||
*
|
||||
@@ -23,8 +25,44 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class TypeHolderExample
|
||||
class TypeHolderExample implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "array_item", "bool_item", "float_item", "integer_item", "number_item", "string_item" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"string_item" : {
|
||||
"type" : "string",
|
||||
"example" : "what"
|
||||
},
|
||||
"number_item" : {
|
||||
"type" : "number",
|
||||
"example" : 1.234
|
||||
},
|
||||
"float_item" : {
|
||||
"type" : "number",
|
||||
"format" : "float",
|
||||
"example" : 1.234
|
||||
},
|
||||
"integer_item" : {
|
||||
"type" : "integer",
|
||||
"example" : -2
|
||||
},
|
||||
"bool_item" : {
|
||||
"type" : "boolean",
|
||||
"example" : true
|
||||
},
|
||||
"array_item" : {
|
||||
"type" : "array",
|
||||
"example" : [ 0, 1, 2, 3 ],
|
||||
"items" : {
|
||||
"type" : "integer"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $stringItem */
|
||||
private $stringItem;
|
||||
@@ -43,4 +81,16 @@ class TypeHolderExample
|
||||
|
||||
/** @var int[] $arrayItem */
|
||||
private $arrayItem;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* User
|
||||
*
|
||||
@@ -23,8 +25,46 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class User
|
||||
class User implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"id" : {
|
||||
"type" : "integer",
|
||||
"format" : "int64",
|
||||
"x-is-unique" : true
|
||||
},
|
||||
"username" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"firstName" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"lastName" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"email" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"password" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"phone" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"userStatus" : {
|
||||
"type" : "integer",
|
||||
"description" : "User Status",
|
||||
"format" : "int32"
|
||||
}
|
||||
},
|
||||
"xml" : {
|
||||
"name" : "User"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var int $id */
|
||||
private $id;
|
||||
@@ -49,4 +89,16 @@ class User
|
||||
|
||||
/** @var int $userStatus User Status*/
|
||||
private $userStatus;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
*/
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
use OpenAPIServer\Interfaces\ModelInterface;
|
||||
|
||||
/**
|
||||
* XmlItem
|
||||
*
|
||||
@@ -23,8 +25,263 @@ namespace OpenAPIServer\Model;
|
||||
* @author OpenAPI Generator team
|
||||
* @link https://github.com/openapitools/openapi-generator
|
||||
*/
|
||||
class XmlItem
|
||||
class XmlItem implements ModelInterface
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"attribute_string" : {
|
||||
"type" : "string",
|
||||
"example" : "string",
|
||||
"xml" : {
|
||||
"attribute" : true
|
||||
}
|
||||
},
|
||||
"attribute_number" : {
|
||||
"type" : "number",
|
||||
"example" : 1.234,
|
||||
"xml" : {
|
||||
"attribute" : true
|
||||
}
|
||||
},
|
||||
"attribute_integer" : {
|
||||
"type" : "integer",
|
||||
"example" : -2,
|
||||
"xml" : {
|
||||
"attribute" : true
|
||||
}
|
||||
},
|
||||
"attribute_boolean" : {
|
||||
"type" : "boolean",
|
||||
"example" : true,
|
||||
"xml" : {
|
||||
"attribute" : true
|
||||
}
|
||||
},
|
||||
"wrapped_array" : {
|
||||
"type" : "array",
|
||||
"xml" : {
|
||||
"wrapped" : true
|
||||
},
|
||||
"items" : {
|
||||
"type" : "integer"
|
||||
}
|
||||
},
|
||||
"name_string" : {
|
||||
"type" : "string",
|
||||
"example" : "string",
|
||||
"xml" : {
|
||||
"name" : "xml_name_string"
|
||||
}
|
||||
},
|
||||
"name_number" : {
|
||||
"type" : "number",
|
||||
"example" : 1.234,
|
||||
"xml" : {
|
||||
"name" : "xml_name_number"
|
||||
}
|
||||
},
|
||||
"name_integer" : {
|
||||
"type" : "integer",
|
||||
"example" : -2,
|
||||
"xml" : {
|
||||
"name" : "xml_name_integer"
|
||||
}
|
||||
},
|
||||
"name_boolean" : {
|
||||
"type" : "boolean",
|
||||
"example" : true,
|
||||
"xml" : {
|
||||
"name" : "xml_name_boolean"
|
||||
}
|
||||
},
|
||||
"name_array" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "integer",
|
||||
"xml" : {
|
||||
"name" : "xml_name_array_item"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name_wrapped_array" : {
|
||||
"type" : "array",
|
||||
"xml" : {
|
||||
"name" : "xml_name_wrapped_array",
|
||||
"wrapped" : true
|
||||
},
|
||||
"items" : {
|
||||
"type" : "integer",
|
||||
"xml" : {
|
||||
"name" : "xml_name_wrapped_array_item"
|
||||
}
|
||||
}
|
||||
},
|
||||
"prefix_string" : {
|
||||
"type" : "string",
|
||||
"example" : "string",
|
||||
"xml" : {
|
||||
"prefix" : "ab"
|
||||
}
|
||||
},
|
||||
"prefix_number" : {
|
||||
"type" : "number",
|
||||
"example" : 1.234,
|
||||
"xml" : {
|
||||
"prefix" : "cd"
|
||||
}
|
||||
},
|
||||
"prefix_integer" : {
|
||||
"type" : "integer",
|
||||
"example" : -2,
|
||||
"xml" : {
|
||||
"prefix" : "ef"
|
||||
}
|
||||
},
|
||||
"prefix_boolean" : {
|
||||
"type" : "boolean",
|
||||
"example" : true,
|
||||
"xml" : {
|
||||
"prefix" : "gh"
|
||||
}
|
||||
},
|
||||
"prefix_array" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "integer",
|
||||
"xml" : {
|
||||
"prefix" : "ij"
|
||||
}
|
||||
}
|
||||
},
|
||||
"prefix_wrapped_array" : {
|
||||
"type" : "array",
|
||||
"xml" : {
|
||||
"prefix" : "kl",
|
||||
"wrapped" : true
|
||||
},
|
||||
"items" : {
|
||||
"type" : "integer",
|
||||
"xml" : {
|
||||
"prefix" : "mn"
|
||||
}
|
||||
}
|
||||
},
|
||||
"namespace_string" : {
|
||||
"type" : "string",
|
||||
"example" : "string",
|
||||
"xml" : {
|
||||
"namespace" : "http://a.com/schema"
|
||||
}
|
||||
},
|
||||
"namespace_number" : {
|
||||
"type" : "number",
|
||||
"example" : 1.234,
|
||||
"xml" : {
|
||||
"namespace" : "http://b.com/schema"
|
||||
}
|
||||
},
|
||||
"namespace_integer" : {
|
||||
"type" : "integer",
|
||||
"example" : -2,
|
||||
"xml" : {
|
||||
"namespace" : "http://c.com/schema"
|
||||
}
|
||||
},
|
||||
"namespace_boolean" : {
|
||||
"type" : "boolean",
|
||||
"example" : true,
|
||||
"xml" : {
|
||||
"namespace" : "http://d.com/schema"
|
||||
}
|
||||
},
|
||||
"namespace_array" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "integer",
|
||||
"xml" : {
|
||||
"namespace" : "http://e.com/schema"
|
||||
}
|
||||
}
|
||||
},
|
||||
"namespace_wrapped_array" : {
|
||||
"type" : "array",
|
||||
"xml" : {
|
||||
"namespace" : "http://f.com/schema",
|
||||
"wrapped" : true
|
||||
},
|
||||
"items" : {
|
||||
"type" : "integer",
|
||||
"xml" : {
|
||||
"namespace" : "http://g.com/schema"
|
||||
}
|
||||
}
|
||||
},
|
||||
"prefix_ns_string" : {
|
||||
"type" : "string",
|
||||
"example" : "string",
|
||||
"xml" : {
|
||||
"namespace" : "http://a.com/schema",
|
||||
"prefix" : "a"
|
||||
}
|
||||
},
|
||||
"prefix_ns_number" : {
|
||||
"type" : "number",
|
||||
"example" : 1.234,
|
||||
"xml" : {
|
||||
"namespace" : "http://b.com/schema",
|
||||
"prefix" : "b"
|
||||
}
|
||||
},
|
||||
"prefix_ns_integer" : {
|
||||
"type" : "integer",
|
||||
"example" : -2,
|
||||
"xml" : {
|
||||
"namespace" : "http://c.com/schema",
|
||||
"prefix" : "c"
|
||||
}
|
||||
},
|
||||
"prefix_ns_boolean" : {
|
||||
"type" : "boolean",
|
||||
"example" : true,
|
||||
"xml" : {
|
||||
"namespace" : "http://d.com/schema",
|
||||
"prefix" : "d"
|
||||
}
|
||||
},
|
||||
"prefix_ns_array" : {
|
||||
"type" : "array",
|
||||
"items" : {
|
||||
"type" : "integer",
|
||||
"xml" : {
|
||||
"namespace" : "http://e.com/schema",
|
||||
"prefix" : "e"
|
||||
}
|
||||
}
|
||||
},
|
||||
"prefix_ns_wrapped_array" : {
|
||||
"type" : "array",
|
||||
"xml" : {
|
||||
"namespace" : "http://f.com/schema",
|
||||
"prefix" : "f",
|
||||
"wrapped" : true
|
||||
},
|
||||
"items" : {
|
||||
"type" : "integer",
|
||||
"xml" : {
|
||||
"namespace" : "http://g.com/schema",
|
||||
"prefix" : "g"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"xml" : {
|
||||
"namespace" : "http://a.com/schema",
|
||||
"prefix" : "pre"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
/** @var string $attributeString */
|
||||
private $attributeString;
|
||||
@@ -112,4 +369,16 @@ class XmlItem
|
||||
|
||||
/** @var int[] $prefixNsWrappedArray */
|
||||
private $prefixNsWrappedArray;
|
||||
|
||||
/**
|
||||
* Returns model schema.
|
||||
*
|
||||
* @param bool $assoc When TRUE, returned objects will be converted into associative arrays. Default FALSE.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public static function getOpenApiSchema($assoc = false)
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, $assoc);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ use OpenAPIServer\Mock\OpenApiDataMockerInterface as IMocker;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use PHPUnit\Framework\Constraint\IsType;
|
||||
use StdClass;
|
||||
use DateTime;
|
||||
|
||||
/**
|
||||
* OpenApiDataMockerTest Class Doc Comment
|
||||
@@ -95,6 +96,18 @@ class OpenApiDataMockerTest extends TestCase
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::mock
|
||||
*/
|
||||
public function testMockWithStringEnumOptions()
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$string = $mocker->mock(IMocker::DATA_TYPE_STRING, null, [
|
||||
'enum' => ['foobar', 'foobaz', 'helloworld'],
|
||||
]);
|
||||
$this->assertContains($string, ['foobar', 'foobaz', 'helloworld']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockIntegerCorrectArguments
|
||||
* @covers ::mockInteger
|
||||
@@ -639,6 +652,45 @@ class OpenApiDataMockerTest extends TestCase
|
||||
'maxItems less than minItems' => [
|
||||
$intItems, 5, 2, false,
|
||||
],
|
||||
'items with ref to unknown class' => [
|
||||
['$ref' => '#/components/schemas/UnknownClass'], null, null, false,
|
||||
],
|
||||
'items with ref to class without getOpenApiSchema method' => [
|
||||
['$ref' => '#/components/schemas/ClassWithoutGetSchemaMethod'], null, null, false,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockArrayWithRefArguments
|
||||
* @covers ::mockArray
|
||||
*/
|
||||
public function testMockArrayWithRef($items, $expectedStructure)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$arr = $mocker->mockArray($items);
|
||||
$this->assertIsArray($arr);
|
||||
$this->assertCount(1, $arr);
|
||||
foreach ($arr as $item) {
|
||||
// TODO: replace with assertInstanceOf assertion
|
||||
$this->assertInternalType(IsType::TYPE_OBJECT, $item);
|
||||
foreach ($expectedStructure as $expectedProp => $expectedType) {
|
||||
$this->assertInternalType($expectedType, $item->$expectedProp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function provideMockArrayWithRefArguments()
|
||||
{
|
||||
return [
|
||||
'items with ref to CatRefTestClass' => [
|
||||
['$ref' => '#/components/schemas/CatRefTestClass'],
|
||||
[
|
||||
'className' => IsType::TYPE_STRING,
|
||||
'color' => IsType::TYPE_STRING,
|
||||
'declawed' => IsType::TYPE_BOOL,
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -723,6 +775,9 @@ class OpenApiDataMockerTest extends TestCase
|
||||
'properties cannot be a string' => [
|
||||
'foobar', 0, 10, false, null,
|
||||
],
|
||||
'property value cannot be a string' => [
|
||||
['username' => 'foobar'], 0, 10, false, null,
|
||||
],
|
||||
'minProperties is not integer' => [
|
||||
[], 3.12, null, false, null,
|
||||
],
|
||||
@@ -761,4 +816,219 @@ class OpenApiDataMockerTest extends TestCase
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers ::mockObject
|
||||
*/
|
||||
public function testMockObjectWithReferencedProps()
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$obj = $mocker->mockObject(
|
||||
(object) [
|
||||
'cat' => [
|
||||
'$ref' => '#/components/schemas/CatRefTestClass',
|
||||
],
|
||||
]
|
||||
);
|
||||
$this->assertInternalType(IsType::TYPE_OBJECT, $obj->cat);
|
||||
$this->assertInternalType(IsType::TYPE_STRING, $obj->cat->className);
|
||||
$this->assertInternalType(IsType::TYPE_STRING, $obj->cat->color);
|
||||
$this->assertInternalType(IsType::TYPE_BOOL, $obj->cat->declawed);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockFromSchemaCorrectArguments
|
||||
* @covers ::mockFromSchema
|
||||
*/
|
||||
public function testMockFromSchemaWithCorrectArguments($schema, $expectedType)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$data = $mocker->mockFromSchema($schema);
|
||||
$this->assertInternalType($expectedType, $data);
|
||||
}
|
||||
|
||||
public function provideMockFromSchemaCorrectArguments()
|
||||
{
|
||||
return [
|
||||
'string from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_STRING],
|
||||
IsType::TYPE_STRING,
|
||||
],
|
||||
'string from array' => [
|
||||
['type' => IMocker::DATA_TYPE_STRING],
|
||||
IsType::TYPE_STRING,
|
||||
],
|
||||
'integer from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_INTEGER],
|
||||
IsType::TYPE_INT,
|
||||
],
|
||||
'integer from array' => [
|
||||
['type' => IMocker::DATA_TYPE_INTEGER],
|
||||
IsType::TYPE_INT,
|
||||
],
|
||||
'number from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_NUMBER],
|
||||
IsType::TYPE_FLOAT,
|
||||
],
|
||||
'number from array' => [
|
||||
['type' => IMocker::DATA_TYPE_NUMBER],
|
||||
IsType::TYPE_FLOAT,
|
||||
],
|
||||
'string from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_STRING],
|
||||
IsType::TYPE_STRING,
|
||||
],
|
||||
'string from array' => [
|
||||
['type' => IMocker::DATA_TYPE_STRING],
|
||||
IsType::TYPE_STRING,
|
||||
],
|
||||
'boolean from object' => [
|
||||
(object) ['type' => IMocker::DATA_TYPE_BOOLEAN],
|
||||
IsType::TYPE_BOOL,
|
||||
],
|
||||
'boolean from array' => [
|
||||
['type' => IMocker::DATA_TYPE_BOOLEAN],
|
||||
IsType::TYPE_BOOL,
|
||||
],
|
||||
'array of strings from object' => [
|
||||
(object) [
|
||||
'type' => IMocker::DATA_TYPE_ARRAY,
|
||||
'items' => ['type' => IMocker::DATA_TYPE_STRING],
|
||||
],
|
||||
IsType::TYPE_ARRAY,
|
||||
],
|
||||
'array of strings from array' => [
|
||||
[
|
||||
'type' => IMocker::DATA_TYPE_ARRAY,
|
||||
'items' => ['type' => IMocker::DATA_TYPE_STRING],
|
||||
],
|
||||
IsType::TYPE_ARRAY,
|
||||
],
|
||||
'object with username prop from object' => [
|
||||
(object) [
|
||||
'type' => IMocker::DATA_TYPE_OBJECT,
|
||||
'properties' => ['username' => ['type' => IMocker::DATA_TYPE_STRING]],
|
||||
],
|
||||
IsType::TYPE_OBJECT,
|
||||
],
|
||||
'object with username prop from array' => [
|
||||
[
|
||||
'type' => IMocker::DATA_TYPE_OBJECT,
|
||||
'properties' => ['username' => ['type' => IMocker::DATA_TYPE_STRING]],
|
||||
],
|
||||
IsType::TYPE_OBJECT,
|
||||
],
|
||||
'referenced class' => [
|
||||
['$ref' => '#/components/schemas/CatRefTestClass'],
|
||||
IsType::TYPE_OBJECT,
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockFromSchemaInvalidArguments
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @covers ::mockFromSchema
|
||||
*/
|
||||
public function testMockFromSchemaWithInvalidArguments($schema)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$data = $mocker->mockFromSchema($schema);
|
||||
}
|
||||
|
||||
|
||||
public function provideMockFromSchemaInvalidArguments()
|
||||
{
|
||||
return [
|
||||
'null' => [null],
|
||||
'numeric' => [3.14],
|
||||
'empty array' => [[]],
|
||||
'empty object' => [(object) []],
|
||||
'string' => ['foobar'],
|
||||
'DateTime object' => [new DateTime()],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockFromRefCorrectArguments
|
||||
* @covers ::mockFromRef
|
||||
*/
|
||||
public function testMockFromRefWithCorrectArguments($ref, $expectedStructure)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$data = $mocker->mockFromRef($ref);
|
||||
foreach ($expectedStructure as $expectedProp => $expectedType) {
|
||||
$this->assertInternalType($expectedType, $data->$expectedProp);
|
||||
}
|
||||
}
|
||||
|
||||
public function provideMockFromRefCorrectArguments()
|
||||
{
|
||||
return [
|
||||
'CatRefTestClass model' => [
|
||||
'#/components/schemas/CatRefTestClass',
|
||||
[
|
||||
'className' => IsType::TYPE_STRING,
|
||||
'color' => IsType::TYPE_STRING,
|
||||
'declawed' => IsType::TYPE_BOOL,
|
||||
]
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider provideMockFromRefInvalidArguments
|
||||
* @expectedException \InvalidArgumentException
|
||||
* @covers ::mockFromRef
|
||||
*/
|
||||
public function testMockFromRefWithInvalidArguments($ref)
|
||||
{
|
||||
$mocker = new OpenApiDataMocker();
|
||||
$data = $mocker->mockFromRef($ref);
|
||||
}
|
||||
|
||||
public function provideMockFromRefInvalidArguments()
|
||||
{
|
||||
return [
|
||||
'ref to unknown class' => ['#/components/schemas/UnknownClass'],
|
||||
'ref to class without getOpenApiSchema method' => ['#/components/schemas/ClassWithoutGetSchemaMethod'],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
namespace OpenAPIServer\Model;
|
||||
|
||||
// phpcs:disable PSR1.Classes.ClassDeclaration.MultipleClasses
|
||||
final class CatRefTestClass
|
||||
{
|
||||
private const MODEL_SCHEMA = <<<'SCHEMA'
|
||||
{
|
||||
"required" : [ "className" ],
|
||||
"type" : "object",
|
||||
"properties" : {
|
||||
"className" : {
|
||||
"type" : "string"
|
||||
},
|
||||
"color" : {
|
||||
"type" : "string",
|
||||
"default" : "red"
|
||||
},
|
||||
"declawed" : {
|
||||
"type" : "boolean"
|
||||
}
|
||||
},
|
||||
"discriminator" : {
|
||||
"propertyName" : "className"
|
||||
}
|
||||
}
|
||||
SCHEMA;
|
||||
|
||||
public static function getOpenApiSchema()
|
||||
{
|
||||
return json_decode(static::MODEL_SCHEMA, true);
|
||||
}
|
||||
}
|
||||
|
||||
final class ClassWithoutGetSchemaMethod
|
||||
{
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user