forked from loafle/openapi-generator-original
[PHP] Fix: Type object not handled properly in setParameterExampleValue (#6619)
* Add test which reproduce the warning #5338 https://github.com/swagger-api/swagger-codegen/issues/5338#issuecomment-292502895 `[main] WARN io.swagger.codegen.languages.PhpClientCodegen - Type object not handled properly in setParameterExampleValue` * Fix Type object not handled properly in setParameterExampleValue * Update samples - /bin/php-petstore.sh - /bin/security/php-petstore.sh
This commit is contained in:
parent
2f98ade693
commit
42313af7a1
@ -627,6 +627,8 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig {
|
|||||||
example = "2013-10-20T19:20:30+01:00";
|
example = "2013-10-20T19:20:30+01:00";
|
||||||
}
|
}
|
||||||
example = "new \\DateTime(\"" + escapeText(example) + "\")";
|
example = "new \\DateTime(\"" + escapeText(example) + "\")";
|
||||||
|
} else if ("object".equals(type)) {
|
||||||
|
example = "new \\stdClass";
|
||||||
} else if (!languageSpecificPrimitives.contains(type)) {
|
} else if (!languageSpecificPrimitives.contains(type)) {
|
||||||
// type is a model class, e.g. User
|
// type is a model class, e.g. User
|
||||||
example = "new " + getTypeDeclaration(type) + "()";
|
example = "new " + getTypeDeclaration(type) + "()";
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package io.swagger.codegen.php;
|
||||||
|
|
||||||
|
import io.swagger.codegen.CodegenParameter;
|
||||||
|
import io.swagger.codegen.languages.PhpClientCodegen;
|
||||||
|
|
||||||
|
import org.testng.Assert;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
public class PhpClientExampleTest {
|
||||||
|
@Test(description = "sets example value")
|
||||||
|
public void exampleValueTest() {
|
||||||
|
PhpClientCodegen clientCodegen = new PhpClientCodegen();
|
||||||
|
CodegenParameter p = new CodegenParameter();
|
||||||
|
p.baseType = "object";
|
||||||
|
|
||||||
|
clientCodegen.setParameterExampleValue(p);
|
||||||
|
Assert.assertEquals(p.example, "new \\stdClass");
|
||||||
|
}
|
||||||
|
}
|
@ -18,7 +18,6 @@
|
|||||||
* OpenAPI spec version: 1.0.0 *_/ ' \" =end -- \\r\\n \\n \\r
|
* OpenAPI spec version: 1.0.0 *_/ ' \" =end -- \\r\\n \\n \\r
|
||||||
* Contact: apiteam@swagger.io *_/ ' \" =end -- \\r\\n \\n \\r
|
* Contact: apiteam@swagger.io *_/ ' \" =end -- \\r\\n \\n \\r
|
||||||
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
* Generated by: https://github.com/swagger-api/swagger-codegen.git
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -64,7 +64,9 @@ class ObjectSerializer
|
|||||||
foreach ($data::swaggerTypes() as $property => $swaggerType) {
|
foreach ($data::swaggerTypes() as $property => $swaggerType) {
|
||||||
$getter = $data::getters()[$property];
|
$getter = $data::getters()[$property];
|
||||||
$value = $data->$getter();
|
$value = $data->$getter();
|
||||||
if ($value !== null && method_exists($swaggerType, 'getAllowableEnumValues')
|
if ($value !== null
|
||||||
|
&& !in_array($swaggerType, ['DateTime', 'bool', 'boolean', 'byte', 'double', 'float', 'int', 'integer', 'mixed', 'number', 'object', 'string', 'void'], true)
|
||||||
|
&& method_exists($swaggerType, 'getAllowableEnumValues')
|
||||||
&& !in_array($value, $swaggerType::getAllowableEnumValues())) {
|
&& !in_array($value, $swaggerType::getAllowableEnumValues())) {
|
||||||
$imploded = implode("', '", $swaggerType::getAllowableEnumValues());
|
$imploded = implode("', '", $swaggerType::getAllowableEnumValues());
|
||||||
throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'");
|
throw new \InvalidArgumentException("Invalid value for enum '$swaggerType', must be one of: '$imploded'");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user