mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-02 15:51:48 +03:00
Unified data types [actualType and subType]
Updated tests. JMS parsing fixes; updated {Validator,FormType}Parser, FOSRestHandler, and AbstractFormatter, and updated DataTypes enum. Modified dataType checking. Updated tests. Updated DataTypes enum. Quick fix and added doc comments. CS fixes. Refactored FormTypeParser to produce nested parameters. Updated tests accordingly. Logical and CS fixes. Sub-forms and more tests. Ignore data_class and always use form-type to avoid conflicts. Quick fix.
This commit is contained in:
parent
a2a4782af5
commit
3a31c93c94
@ -54,7 +54,7 @@ class Configuration implements ConfigurationInterface
|
||||
->addDefaultsIfNotSet()
|
||||
->beforeNormalization()
|
||||
->ifString()
|
||||
->then(function($v) { return array('default_format' => $v); })
|
||||
->then(function ($v) { return array('default_format' => $v); })
|
||||
->end()
|
||||
->children()
|
||||
->arrayNode('formats')
|
||||
|
@ -16,6 +16,9 @@ use Symfony\Component\Form\Exception\UnexpectedTypeException;
|
||||
use Symfony\Component\Form\Exception\InvalidArgumentException;
|
||||
use Symfony\Component\Form\Extension\Core\ChoiceList\ChoiceListInterface;
|
||||
use Symfony\Component\Form\Extension\Core\View\ChoiceView;
|
||||
use Symfony\Component\Form\Form;
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\Form\ResolvedFormTypeInterface;
|
||||
use Symfony\Component\OptionsResolver\Exception\MissingOptionsException;
|
||||
use Symfony\Component\Form\FormFactoryInterface;
|
||||
use Symfony\Component\Form\Exception\FormException;
|
||||
@ -87,39 +90,73 @@ class FormTypeParser implements ParserInterface
|
||||
|
||||
$form = $this->formFactory->create($type);
|
||||
|
||||
return $this->parseForm($form, array_key_exists('name', $item) ? $item['name'] : $form->getName());
|
||||
$name = array_key_exists('name', $item) ? $item['name'] : $form->getName();
|
||||
|
||||
$options = null;
|
||||
|
||||
if (empty($name)) {
|
||||
return $this->parseForm($form);
|
||||
}
|
||||
|
||||
$subType = is_object($type) ? get_class($type) : $type;
|
||||
|
||||
if (class_exists($subType)) {
|
||||
$parts = explode('\\', $subType);
|
||||
$dataType = sprintf('object (%s)', end($parts));
|
||||
} else {
|
||||
$dataType = sprintf('object (%s)', $subType);
|
||||
}
|
||||
|
||||
return array(
|
||||
$name => array(
|
||||
'required' => true,
|
||||
'readonly' => false,
|
||||
'description' => '',
|
||||
'default' => null,
|
||||
'dataType' => $dataType,
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => $subType,
|
||||
'children' => $this->parseForm($form),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
private function parseForm($form, $prefix = null)
|
||||
private function parseForm($form)
|
||||
{
|
||||
$parameters = array();
|
||||
foreach ($form as $name => $child) {
|
||||
$config = $child->getConfig();
|
||||
|
||||
|
||||
if ($prefix) {
|
||||
$name = sprintf('%s[%s]', $prefix, $name);
|
||||
}
|
||||
|
||||
$bestType = '';
|
||||
$config = $child->getConfig();
|
||||
$bestType = '';
|
||||
$actualType = null;
|
||||
$subType = null;
|
||||
$subType = null;
|
||||
$children = null;
|
||||
|
||||
for ($type = $config->getType(); null !== $type; $type = $type->getParent()) {
|
||||
for ($type = $config->getType();
|
||||
$type instanceof FormInterface || $type instanceof ResolvedFormTypeInterface;
|
||||
$type = $type->getParent()
|
||||
) {
|
||||
if (isset($this->mapTypes[$type->getName()])) {
|
||||
$bestType = $this->mapTypes[$type->getName()];
|
||||
$bestType = $this->mapTypes[$type->getName()];
|
||||
$actualType = $bestType;
|
||||
} elseif ('collection' === $type->getName()) {
|
||||
if (is_string($config->getOption('type')) && isset($this->mapTypes[$config->getOption('type')])) {
|
||||
$subType = $this->mapTypes[$config->getOption('type')];
|
||||
$subType = $this->mapTypes[$config->getOption('type')];
|
||||
$actualType = DataTypes::COLLECTION;
|
||||
$bestType = sprintf('array of %ss', $subType);
|
||||
$bestType = sprintf('array of %ss', $subType);
|
||||
} else {
|
||||
// Embedded form collection
|
||||
$subParameters = $this->parseForm($this->formFactory->create($config->getOption('type'), null, $config->getOption('options', array())), $name . '[]');
|
||||
$parameters = array_merge($parameters, $subParameters);
|
||||
$type = $config->getOption('type');
|
||||
$subForm = $this->formFactory->create($type, null, $config->getOption('options', array()));
|
||||
$children = $this->parseForm($subForm);
|
||||
$actualType = DataTypes::COLLECTION;
|
||||
$subType = is_object($type) ? get_class($type) : $type;
|
||||
|
||||
continue 2;
|
||||
if (class_exists($subType)) {
|
||||
$parts = explode('\\', $subType);
|
||||
$bestType = sprintf('array of objects (%s)', end($parts));
|
||||
} else {
|
||||
$bestType = sprintf('array of objects (%s)', $subType);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -134,10 +171,27 @@ class FormTypeParser implements ParserInterface
|
||||
*/
|
||||
$addDefault = false;
|
||||
try {
|
||||
$subForm = $this->formFactory->create($type);
|
||||
$subForm = $this->formFactory->create($type);
|
||||
$subParameters = $this->parseForm($subForm, $name);
|
||||
|
||||
if (!empty($subParameters)) {
|
||||
$parameters = array_merge($parameters, $subParameters);
|
||||
$children = $subParameters;
|
||||
$config = $subForm->getConfig();
|
||||
$subType = get_class($type);
|
||||
$parts = explode('\\', $subType);
|
||||
$bestType = sprintf('object (%s)', end($parts));
|
||||
|
||||
$parameters[$name] = array(
|
||||
'dataType' => $bestType,
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'default' => null,
|
||||
'subType' => $subType,
|
||||
'required' => $config->getRequired(),
|
||||
'description' => $config->getAttribute('description'),
|
||||
'readonly' => $config->getDisabled(),
|
||||
'children' => $children,
|
||||
);
|
||||
|
||||
} else {
|
||||
$addDefault = true;
|
||||
}
|
||||
@ -147,12 +201,12 @@ class FormTypeParser implements ParserInterface
|
||||
|
||||
if ($addDefault) {
|
||||
$parameters[$name] = array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => 'string',
|
||||
'default' => $config->getData(),
|
||||
'required' => $config->getRequired(),
|
||||
'description' => $config->getAttribute('description'),
|
||||
'readonly' => $config->getDisabled(),
|
||||
'dataType' => 'string',
|
||||
'actualType' => 'string',
|
||||
'default' => $config->getData(),
|
||||
'required' => $config->getRequired(),
|
||||
'description' => $config->getAttribute('description'),
|
||||
'readonly' => $config->getDisabled(),
|
||||
);
|
||||
}
|
||||
|
||||
@ -162,17 +216,21 @@ class FormTypeParser implements ParserInterface
|
||||
}
|
||||
|
||||
$parameters[$name] = array(
|
||||
'dataType' => $bestType,
|
||||
'actualType' => $actualType,
|
||||
'subType' => $subType,
|
||||
'default' => $config->getData(),
|
||||
'required' => $config->getRequired(),
|
||||
'description' => $config->getAttribute('description'),
|
||||
'readonly' => $config->getDisabled(),
|
||||
'dataType' => $bestType,
|
||||
'actualType' => $actualType,
|
||||
'subType' => $subType,
|
||||
'default' => $config->getData(),
|
||||
'required' => $config->getRequired(),
|
||||
'description' => $config->getAttribute('description'),
|
||||
'readonly' => $config->getDisabled(),
|
||||
);
|
||||
|
||||
switch ($actualType) {
|
||||
case DataTypes::DATETIME:
|
||||
if (null !== $children) {
|
||||
$parameters[$name]['children'] = $children;
|
||||
}
|
||||
|
||||
switch ($bestType) {
|
||||
case 'datetime':
|
||||
if (($format = $config->getOption('date_format')) && is_string($format)) {
|
||||
$parameters[$name]['format'] = $format;
|
||||
} elseif ('single_text' == $config->getOption('widget') && $format = $config->getOption('format')) {
|
||||
@ -180,13 +238,13 @@ class FormTypeParser implements ParserInterface
|
||||
}
|
||||
break;
|
||||
|
||||
case DataTypes::DATE:
|
||||
case 'date':
|
||||
if (($format = $config->getOption('format')) && is_string($format)) {
|
||||
$parameters[$name]['format'] = $format;
|
||||
}
|
||||
break;
|
||||
|
||||
case DataTypes::ENUM:
|
||||
case 'choice':
|
||||
if ($config->getOption('multiple')) {
|
||||
$parameters[$name]['dataType'] = sprintf('array of %ss', $parameters[$name]['dataType']);
|
||||
$parameters[$name]['actualType'] = DataTypes::COLLECTION;
|
||||
@ -213,9 +271,10 @@ class FormTypeParser implements ParserInterface
|
||||
if (!class_exists($item)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$refl = new \ReflectionClass($item);
|
||||
|
||||
return $refl->implementsInterface('Symfony\Component\Form\FormTypeInterface');
|
||||
return $refl->implementsInterface('Symfony\Component\Form\FormTypeInterface') || $refl->implementsInterface('Symfony\Component\Form\ResolvedFormTypeInterface');
|
||||
}
|
||||
|
||||
private function getTypeInstance($type)
|
||||
@ -230,6 +289,7 @@ class FormTypeParser implements ParserInterface
|
||||
|
||||
return $this->formFactory->create($type);
|
||||
}
|
||||
|
||||
try {
|
||||
return $this->formFactory->create($item);
|
||||
} catch (UnexpectedTypeException $e) {
|
||||
|
@ -133,6 +133,7 @@ class JmsMetadataParser implements ParserInterface
|
||||
'actualType' => $dataType['actualType'],
|
||||
'subType' => $dataType['class'],
|
||||
'required' => false,
|
||||
'default' => null,
|
||||
//TODO: can't think of a good way to specify this one, JMS doesn't have a setting for this
|
||||
'description' => $this->getDescription($item),
|
||||
'readonly' => $item->readOnly,
|
||||
|
@ -28,17 +28,17 @@ class ValidationParser implements ParserInterface, PostParserInterface
|
||||
protected $factory;
|
||||
|
||||
protected $typeMap = array(
|
||||
'integer' => DataTypes::INTEGER,
|
||||
'int' => DataTypes::INTEGER,
|
||||
'scalar' => DataTypes::STRING,
|
||||
'numeric' => DataTypes::INTEGER,
|
||||
'boolean' => DataTypes::BOOLEAN,
|
||||
'string' => DataTypes::STRING,
|
||||
'float' => DataTypes::FLOAT,
|
||||
'double' => DataTypes::FLOAT,
|
||||
'long' => DataTypes::INTEGER,
|
||||
'object' => DataTypes::MODEL,
|
||||
'array' => DataTypes::COLLECTION,
|
||||
'integer' => DataTypes::INTEGER,
|
||||
'int' => DataTypes::INTEGER,
|
||||
'scalar' => DataTypes::STRING,
|
||||
'numeric' => DataTypes::INTEGER,
|
||||
'boolean' => DataTypes::BOOLEAN,
|
||||
'string' => DataTypes::STRING,
|
||||
'float' => DataTypes::FLOAT,
|
||||
'double' => DataTypes::FLOAT,
|
||||
'long' => DataTypes::INTEGER,
|
||||
'object' => DataTypes::MODEL,
|
||||
'array' => DataTypes::COLLECTION,
|
||||
'DateTime' => DataTypes::DATETIME,
|
||||
);
|
||||
|
||||
@ -159,7 +159,8 @@ class ValidationParser implements ParserInterface, PostParserInterface
|
||||
$class = substr(get_class($constraint), strlen('Symfony\\Component\\Validator\\Constraints\\'));
|
||||
|
||||
$vparams['actualType'] = DataTypes::STRING;
|
||||
$vparams['subType'] = null;
|
||||
$vparams['subType'] = null;
|
||||
$vparams['default'] = null;
|
||||
|
||||
switch ($class) {
|
||||
case 'NotBlank':
|
||||
@ -243,10 +244,10 @@ class ValidationParser implements ParserInterface, PostParserInterface
|
||||
}
|
||||
}
|
||||
|
||||
$vparams['dataType'] = sprintf("array of objects (%s)", end($exp));
|
||||
$vparams['dataType'] = sprintf("array of objects (%s)", end($exp));
|
||||
$vparams['actualType'] = DataTypes::COLLECTION;
|
||||
$vparams['subType'] = $nestedType;
|
||||
$vparams['class'] = $nestedType;
|
||||
$vparams['subType'] = $nestedType;
|
||||
$vparams['class'] = $nestedType;
|
||||
|
||||
if (!in_array($nestedType, $visited)) {
|
||||
$visited[] = $nestedType;
|
||||
|
32
Tests/Fixtures/Form/CompoundType.php
Normal file
32
Tests/Fixtures/Form/CompoundType.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Nelmio\ApiDocBundle\Tests\Fixtures\Form;
|
||||
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
|
||||
/**
|
||||
* Class CompoundType
|
||||
*
|
||||
* @author Bez Hermoso <bez@activelamp.com>
|
||||
*/
|
||||
class CompoundType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder
|
||||
->add('sub_form', new SimpleType())
|
||||
->add('a', 'number')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of this type.
|
||||
*
|
||||
* @return string The name of this type
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return '';
|
||||
}
|
||||
}
|
@ -1,10 +1,4 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Maxim_Romanovsky
|
||||
* Date: 4/4/14
|
||||
* Time: 11:00 AM
|
||||
*/
|
||||
|
||||
namespace Nelmio\ApiDocBundle\Tests\Fixtures\Form;
|
||||
|
||||
|
38
Tests/Fixtures/Form/SimpleType.php
Normal file
38
Tests/Fixtures/Form/SimpleType.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Nelmio\ApiDocBundle\Tests\Fixtures\Form;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
|
||||
/**
|
||||
* Class SimpleType
|
||||
*
|
||||
* @author Bez Hermoso <bez@activelamp.com>
|
||||
*/
|
||||
class SimpleType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder->add('a', 'text', array(
|
||||
'description' => 'Something that describes A.',
|
||||
))
|
||||
->add('b', 'number')
|
||||
->add('c', 'choice', array(
|
||||
'choices' => array('x' => 'X', 'y' => 'Y', 'z' => 'Z'),
|
||||
))
|
||||
->add('d', 'datetime')
|
||||
->add('e', 'date')
|
||||
->add('g', 'textarea')
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the name of this type.
|
||||
*
|
||||
* @return string The name of this type
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'simple';
|
||||
}
|
||||
}
|
@ -162,6 +162,11 @@ _create another test_
|
||||
|
||||
#### Parameters ####
|
||||
|
||||
dependency_type:
|
||||
|
||||
* type: object (dependency_type)
|
||||
* required: true
|
||||
|
||||
dependency_type[a]:
|
||||
|
||||
* type: string
|
||||
@ -289,6 +294,10 @@ _Testing return_
|
||||
|
||||
#### Response ####
|
||||
|
||||
dependency_type:
|
||||
|
||||
* type: object (dependency_type)
|
||||
|
||||
dependency_type[a]:
|
||||
|
||||
* type: string
|
||||
|
@ -227,15 +227,25 @@ class SimpleFormatterTest extends WebTestCase
|
||||
'description' => 'create another test',
|
||||
'parameters' =>
|
||||
array(
|
||||
'dependency_type[a]' =>
|
||||
array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'dependency_type' => array(
|
||||
'dataType' => 'object (dependency_type)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'dependency_type',
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false,
|
||||
'description' => '',
|
||||
'children' => array(
|
||||
'a' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
'https' => false,
|
||||
@ -293,6 +303,7 @@ class SimpleFormatterTest extends WebTestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -304,6 +315,7 @@ class SimpleFormatterTest extends WebTestCase
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => true,
|
||||
@ -315,6 +327,7 @@ class SimpleFormatterTest extends WebTestCase
|
||||
'dataType' => 'double',
|
||||
'actualType' => DataTypes::FLOAT,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -326,6 +339,7 @@ class SimpleFormatterTest extends WebTestCase
|
||||
'dataType' => 'array',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -337,6 +351,7 @@ class SimpleFormatterTest extends WebTestCase
|
||||
'dataType' => 'object (JmsNested)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -349,6 +364,7 @@ class SimpleFormatterTest extends WebTestCase
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => true,
|
||||
@ -360,6 +376,7 @@ class SimpleFormatterTest extends WebTestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -371,6 +388,7 @@ class SimpleFormatterTest extends WebTestCase
|
||||
'dataType' => 'array of integers',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => DataTypes::INTEGER,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => 'Epic description.
|
||||
|
||||
@ -384,6 +402,7 @@ With multiple lines.',
|
||||
'dataType' => 'object (JmsNested)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -395,6 +414,7 @@ With multiple lines.',
|
||||
'dataType' => 'object (JmsTest)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsTest',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -407,6 +427,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -418,6 +439,7 @@ With multiple lines.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => true,
|
||||
@ -429,6 +451,7 @@ With multiple lines.',
|
||||
'dataType' => 'double',
|
||||
'actualType' => DataTypes::FLOAT,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -440,6 +463,7 @@ With multiple lines.',
|
||||
'dataType' => 'array',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -451,6 +475,7 @@ With multiple lines.',
|
||||
'dataType' => 'object (JmsNested)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -462,6 +487,7 @@ With multiple lines.',
|
||||
'dataType' => 'array of objects (JmsNested)',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -475,6 +501,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -486,6 +513,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -497,6 +525,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -510,6 +539,7 @@ With multiple lines.',
|
||||
'dataType' => 'array of objects (JmsNested)',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -529,15 +559,25 @@ With multiple lines.',
|
||||
'description' => 'Testing return',
|
||||
'response' =>
|
||||
array(
|
||||
'dependency_type[a]' =>
|
||||
array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'dependency_type' => array(
|
||||
'dataType' => 'object (dependency_type)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'dependency_type',
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false,
|
||||
'description' => '',
|
||||
'children' => array(
|
||||
'a' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false,
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
'https' => false,
|
||||
@ -601,6 +641,7 @@ And, it supports multilines until the first \'@\' char.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -612,6 +653,7 @@ And, it supports multilines until the first \'@\' char.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => true,
|
||||
@ -623,6 +665,7 @@ And, it supports multilines until the first \'@\' char.',
|
||||
'dataType' => 'double',
|
||||
'actualType' => DataTypes::FLOAT,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -634,6 +677,7 @@ And, it supports multilines until the first \'@\' char.',
|
||||
'dataType' => 'array',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -645,6 +689,7 @@ And, it supports multilines until the first \'@\' char.',
|
||||
'dataType' => 'object (JmsNested)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -657,6 +702,7 @@ And, it supports multilines until the first \'@\' char.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => true,
|
||||
@ -668,6 +714,7 @@ And, it supports multilines until the first \'@\' char.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -679,6 +726,7 @@ And, it supports multilines until the first \'@\' char.',
|
||||
'dataType' => 'array of integers',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => DataTypes::INTEGER,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => 'Epic description.
|
||||
|
||||
@ -692,6 +740,7 @@ With multiple lines.',
|
||||
'dataType' => 'object (JmsNested)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -703,6 +752,7 @@ With multiple lines.',
|
||||
'dataType' => 'object (JmsTest)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsTest',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -715,6 +765,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -726,6 +777,7 @@ With multiple lines.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => true,
|
||||
@ -737,6 +789,7 @@ With multiple lines.',
|
||||
'dataType' => 'double',
|
||||
'actualType' => DataTypes::FLOAT,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -748,6 +801,7 @@ With multiple lines.',
|
||||
'dataType' => 'array',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -759,6 +813,7 @@ With multiple lines.',
|
||||
'dataType' => 'object (JmsNested)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -770,6 +825,7 @@ With multiple lines.',
|
||||
'dataType' => 'array of objects (JmsNested)',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -783,6 +839,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -794,6 +851,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -805,6 +863,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -818,6 +877,7 @@ With multiple lines.',
|
||||
'dataType' => 'array of objects (JmsNested)',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\JmsNested',
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -969,6 +1029,7 @@ With multiple lines.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => null,
|
||||
'readonly' => null
|
||||
),
|
||||
@ -976,6 +1037,7 @@ With multiple lines.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -986,6 +1048,7 @@ With multiple lines.',
|
||||
'dataType' => 'array of objects (Test)',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\Test',
|
||||
'default' => null,
|
||||
'readonly' => null,
|
||||
'required' => null,
|
||||
'children' => array(
|
||||
@ -993,6 +1056,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'format' => '{length: min: foo}, {not blank}',
|
||||
'required' => true,
|
||||
'readonly' => null
|
||||
@ -1001,6 +1065,7 @@ With multiple lines.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => null,
|
||||
'readonly' => null
|
||||
)
|
||||
@ -1050,6 +1115,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'default' => "DefaultTest",
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
@ -1069,6 +1135,7 @@ With multiple lines.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => null,
|
||||
'readonly' => null
|
||||
),
|
||||
@ -1076,6 +1143,7 @@ With multiple lines.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
@ -1086,6 +1154,7 @@ With multiple lines.',
|
||||
'dataType' => 'array of objects (Test)',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\Test',
|
||||
'default' => null,
|
||||
'readonly' => null,
|
||||
'required' => null,
|
||||
'children' => array(
|
||||
@ -1093,6 +1162,7 @@ With multiple lines.',
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'format' => '{length: min: foo}, {not blank}',
|
||||
'required' => true,
|
||||
'readonly' => null
|
||||
@ -1101,6 +1171,7 @@ With multiple lines.',
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => null,
|
||||
'readonly' => null
|
||||
)
|
||||
|
@ -58,10 +58,10 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'boolean',
|
||||
'actualType' => DataTypes::BOOLEAN,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
'default' => null
|
||||
),
|
||||
'd' => array(
|
||||
'dataType' => 'string',
|
||||
@ -77,52 +77,74 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
|
||||
array(
|
||||
array('class' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Form\CollectionType'),
|
||||
array(
|
||||
'collection_type[a]' => array(
|
||||
'dataType' => 'array of strings',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => DataTypes::STRING,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'default' => null,
|
||||
'readonly' => false
|
||||
),
|
||||
'collection_type[b][][a]' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'default' => null,
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false
|
||||
),
|
||||
'collection_type[b][][b]' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'collection_type' => array(
|
||||
'dataType' => 'object (CollectionType)',
|
||||
'actualType' => DataTypes::MODEL,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Form\CollectionType',
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
'readonly' => false,
|
||||
'children' => array(
|
||||
'a' => array(
|
||||
'dataType' => 'array of strings',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => DataTypes::STRING,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'b' => array(
|
||||
'dataType' => 'array of objects (TestType)',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Form\TestType',
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
'children' => array(
|
||||
'a' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'default' => null,
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false,
|
||||
),
|
||||
'b' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'default' => null,
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'c' => array(
|
||||
'dataType' => 'boolean',
|
||||
'actualType' => DataTypes::BOOLEAN,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'd' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
'default' => "DefaultTest"
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
'collection_type[b][][c]' => array(
|
||||
'dataType' => 'boolean',
|
||||
'actualType' => DataTypes::BOOLEAN,
|
||||
'default' => null,
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
),
|
||||
'collection_type[b][][d]' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'default' => "DefaultTest",
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
)
|
||||
)
|
||||
),
|
||||
),
|
||||
array(
|
||||
array(
|
||||
@ -133,49 +155,60 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
|
||||
'a' => array(
|
||||
'dataType' => 'array of strings',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'default' => null,
|
||||
'subType' => DataTypes::STRING,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
),
|
||||
'b[][a]' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'default' => null,
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'b[][b]' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'b' => array(
|
||||
'dataType' => 'array of objects (TestType)',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Form\TestType',
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'default' => null,
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
'readonly' => false,
|
||||
'children' => array(
|
||||
'a' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false,
|
||||
),
|
||||
'b' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'c' => array(
|
||||
'dataType' => 'boolean',
|
||||
'actualType' => DataTypes::BOOLEAN,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'd' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
'default' => "DefaultTest"
|
||||
),
|
||||
),
|
||||
),
|
||||
'b[][c]' => array(
|
||||
'dataType' => 'boolean',
|
||||
'actualType' => DataTypes::BOOLEAN,
|
||||
'default' => null,
|
||||
'subType' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
),
|
||||
'b[][d]' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => "DefaultTest",
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
)
|
||||
)
|
||||
),
|
||||
),
|
||||
array(
|
||||
array(
|
||||
@ -190,45 +223,56 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
'readonly' => false,
|
||||
),
|
||||
'b[][a]' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false
|
||||
),
|
||||
'b[][b]' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'b' => array(
|
||||
'dataType' => 'array of objects (TestType)',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Form\TestType',
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
'readonly' => false,
|
||||
'children' => array(
|
||||
'a' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => 'A nice description',
|
||||
'readonly' => false,
|
||||
),
|
||||
'b' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'c' => array(
|
||||
'dataType' => 'boolean',
|
||||
'actualType' => DataTypes::BOOLEAN,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'd' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => "DefaultTest",
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
),
|
||||
),
|
||||
),
|
||||
'b[][c]' => array(
|
||||
'dataType' => 'boolean',
|
||||
'actualType' => DataTypes::BOOLEAN,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
),
|
||||
'b[][d]' => array(
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => "DefaultTest",
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false
|
||||
)
|
||||
)
|
||||
),
|
||||
),
|
||||
array(
|
||||
array('class' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Form\ImprovedTestType'),
|
||||
@ -339,8 +383,97 @@ class FormTypeParserTest extends \PHPUnit_Framework_TestCase
|
||||
'readonly' => false,
|
||||
'format' => json_encode(array('foo' => 'bar', 'baz' => 'Buzz')),
|
||||
),
|
||||
)
|
||||
),
|
||||
),
|
||||
array(
|
||||
array('class' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Form\CompoundType'),
|
||||
array (
|
||||
'sub_form' =>
|
||||
array (
|
||||
'dataType' => 'object (SimpleType)',
|
||||
'actualType' => 'model',
|
||||
'subType' => 'Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Form\\SimpleType',
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
'children' =>
|
||||
array (
|
||||
'a' =>
|
||||
array (
|
||||
'dataType' => 'string',
|
||||
'actualType' => 'string',
|
||||
'subType' => NULL,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => 'Something that describes A.',
|
||||
'readonly' => false,
|
||||
),
|
||||
'b' =>
|
||||
array (
|
||||
'dataType' => 'float',
|
||||
'actualType' => 'float',
|
||||
'subType' => NULL,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'c' =>
|
||||
array (
|
||||
'dataType' => 'choice',
|
||||
'actualType' => 'choice',
|
||||
'subType' => NULL,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
'format' => '{"x":"X","y":"Y","z":"Z"}',
|
||||
),
|
||||
'd' =>
|
||||
array (
|
||||
'dataType' => 'datetime',
|
||||
'actualType' => 'datetime',
|
||||
'subType' => NULL,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'e' =>
|
||||
array (
|
||||
'dataType' => 'date',
|
||||
'actualType' => 'date',
|
||||
'subType' => NULL,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
'g' =>
|
||||
array (
|
||||
'dataType' => 'string',
|
||||
'actualType' => 'string',
|
||||
'subType' => NULL,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
),
|
||||
),
|
||||
'a' =>
|
||||
array (
|
||||
'dataType' => 'float',
|
||||
'actualType' => 'float',
|
||||
'subType' => NULL,
|
||||
'default' => null,
|
||||
'required' => true,
|
||||
'description' => '',
|
||||
'readonly' => false,
|
||||
),
|
||||
),
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
@ -85,6 +85,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'DateTime',
|
||||
'actualType' => DataTypes::DATETIME,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -95,6 +96,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -105,6 +107,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'array of integers',
|
||||
'actualType' => DataTypes::COLLECTION,
|
||||
'subType' => DataTypes::INTEGER,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -164,6 +167,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -174,6 +178,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -184,6 +189,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -208,6 +214,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -218,6 +225,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -242,6 +250,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -252,6 +261,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -276,6 +286,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -286,6 +297,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -296,6 +308,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -355,6 +368,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -365,6 +379,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
@ -375,6 +390,7 @@ class JmsMetadataParserTest extends \PHPUnit_Framework_TestCase
|
||||
'dataType' => 'string',
|
||||
'actualType' => DataTypes::STRING,
|
||||
'subType' => null,
|
||||
'default' => null,
|
||||
'required' => false,
|
||||
'description' => null,
|
||||
'readonly' => false,
|
||||
|
Loading…
x
Reference in New Issue
Block a user