Merge pull request #748 from fstr/ISSUE-747

Empty string is now a valid default parameter value
This commit is contained in:
William Durand 2015-11-10 09:18:44 +01:00
commit a24d81f766
2 changed files with 40 additions and 1 deletions

View File

@ -484,7 +484,11 @@ class ApiDocExtractor
$v1[$name] = $value;
}
} elseif ($name == 'default') {
$v1[$name] = $value ?: $v1[$name];
if (isset($v1[$name])) {
$v1[$name] = isset($value) ? $value : $v1[$name];
} else {
$v1[$name] = isset($value) ? $value : null;
}
} else {
$v1[$name] = $value;
}

View File

@ -436,4 +436,39 @@ class ApiDocExtractorTest extends WebTestCase
$this->assertEquals('object (JmsNested)', $array['parameters']['nested']['dataType']);
$this->assertEquals('string', $array['parameters']['nested']['children']['bar']['dataType']);
}
public function testMergeParametersDefaultKeyNotExistingInFirstArray()
{
$container = $this->getContainer();
$extractor = $container->get('nelmio_api_doc.extractor.api_doc_extractor');
$mergeMethod = new \ReflectionMethod('Nelmio\ApiDocBundle\Extractor\ApiDocExtractor', 'mergeParameters');
$mergeMethod->setAccessible(true);
$p1 = [
'myPropName' => [
'dataType' => 'string',
'actualType' => 'string',
'subType' => null,
'required' => null,
'description' => null,
'readonly' => null,
]
];
$p2 = [
'myPropName' => [
'dataType' => 'string',
'actualType' => 'string',
'subType' => null,
'required' => null,
'description' => null,
'readonly' => null,
'default' => '',
]
];
$mergedResult = $mergeMethod->invokeArgs($extractor, [$p1, $p2]);
$this->assertEquals($p2, $mergedResult);
}
}