diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java index 7d48f0d1986..fd0b6e9179c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultCodegen.java @@ -3939,10 +3939,6 @@ public class DefaultCodegen implements CodegenConfig { } } - for (int i = 0; i < parameters.size(); i++) { - System.out.println("parmaeter name:" + parameters.get(i).baseName); - } - return parameters; } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LumenServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java similarity index 88% rename from modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LumenServerCodegen.java rename to modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java index 78513fd0bca..17084db375a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/LumenServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpLumenServerCodegen.java @@ -10,16 +10,15 @@ import java.util.HashMap; import java.util.Map; import java.util.TreeMap; -public class LumenServerCodegen extends AbstractPhpCodegen -{ - @SuppressWarnings("hiding") +public class PhpLumenServerCodegen extends AbstractPhpCodegen { + @SuppressWarnings("hiding") protected String apiVersion = "1.0.0"; - + /** * Configures the type of generator. - * - * @return the CodegenType for this generator - * @see org.openapitools.codegen.CodegenType + * + * @return the CodegenType for this generator + * @see org.openapitools.codegen.CodegenType */ public CodegenType getTag() { return CodegenType.SERVER; @@ -28,7 +27,7 @@ public class LumenServerCodegen extends AbstractPhpCodegen /** * Configures a friendly name for the generator. This will be used by the generator * to select the library with the -l flag. - * + * * @return the friendly name for the generator */ public String getName() { @@ -38,14 +37,14 @@ public class LumenServerCodegen extends AbstractPhpCodegen /** * Returns human-friendly help for the generator. Provide the consumer with help * tips, parameters here - * + * * @return A string value for the help message */ public String getHelp() { return "Generates a PHP Lumen server library."; } - public LumenServerCodegen() { + public PhpLumenServerCodegen() { super(); embeddedTemplateDir = templateDir = "lumen"; @@ -88,13 +87,13 @@ public class LumenServerCodegen extends AbstractPhpCodegen supportingFiles.add(new SupportingFile("app.php", packagePath + File.separator + srcBasePath + File.separator + "bootstrap", "app.php")); supportingFiles.add(new SupportingFile("index.php", packagePath + File.separator + srcBasePath + File.separator + "public", "index.php")); supportingFiles.add(new SupportingFile("User.php", packagePath + File.separator + srcBasePath + File.separator + "app", "User.php")); - supportingFiles.add(new SupportingFile("Kernel.php", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Console", "Kernel.php")); - supportingFiles.add(new SupportingFile("Handler.php", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Exceptions", "Handler.php")); - supportingFiles.add(new SupportingFile("routes.mustache", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Http", "routes.php")); - - supportingFiles.add(new SupportingFile("Controller.php", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Http" + File.separator + "Controllers" + File.separator, "Controller.php")); - supportingFiles.add(new SupportingFile("Authenticate.php", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Http" + File.separator + "Middleware" + File.separator, "Authenticate.php")); - + supportingFiles.add(new SupportingFile("Kernel.php", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Console", "Kernel.php")); + supportingFiles.add(new SupportingFile("Handler.php", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Exceptions", "Handler.php")); + supportingFiles.add(new SupportingFile("routes.mustache", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Http", "routes.php")); + + supportingFiles.add(new SupportingFile("Controller.php", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Http" + File.separator + "Controllers" + File.separator, "Controller.php")); + supportingFiles.add(new SupportingFile("Authenticate.php", packagePath + File.separator + srcBasePath + File.separator + "app" + File.separator + "Http" + File.separator + "Middleware" + File.separator, "Authenticate.php")); + } // override with any special post-processing @@ -113,7 +112,7 @@ public class LumenServerCodegen extends AbstractPhpCodegen throw new IllegalArgumentException("'.' (dot) is not supported by PHP Lumen. Please refer to https://github.com/swagger-api/swagger-codegen/issues/6897 for more info."); } } - + // sort the endpoints in ascending to avoid the route priority issure. // https://github.com/swagger-api/swagger-codegen/issues/2643 Collections.sort(operations, new Comparator() { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SilexServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java similarity index 96% rename from modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SilexServerCodegen.java rename to modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java index aad5a466f01..7c4741e45ad 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SilexServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSilexServerCodegen.java @@ -20,13 +20,13 @@ import java.util.Map; import org.apache.commons.lang3.StringUtils; -public class SilexServerCodegen extends DefaultCodegen implements CodegenConfig { +public class PhpSilexServerCodegen extends DefaultCodegen implements CodegenConfig { protected String invokerPackage; protected String groupId = "io.swagger"; protected String artifactId = "swagger-server"; protected String artifactVersion = "1.0.0"; - public SilexServerCodegen() { + public PhpSilexServerCodegen() { super(); invokerPackage = camelize("SwaggerServer"); @@ -103,7 +103,9 @@ public class SilexServerCodegen extends DefaultCodegen implements CodegenConfig } @Override - public String getName() { + public String getName() + + { return "php-silex"; } @@ -113,13 +115,13 @@ public class SilexServerCodegen extends DefaultCodegen implements CodegenConfig } @Override - public String escapeReservedWord(String name) { - if(this.reservedWordsMappings().containsKey(name)) { + public String escapeReservedWord(String name) { + if (this.reservedWordsMappings().containsKey(name)) { return this.reservedWordsMappings().get(name); } return "_" + name; } - + @Override public String apiFileFolder() { return (outputFolder + "/" + apiPackage()).replace('/', File.separatorChar); @@ -233,7 +235,7 @@ public class SilexServerCodegen extends DefaultCodegen implements CodegenConfig for (int i = 0; i < items.length; ++i) { if (items[i].matches("^\\{(.*)\\}$")) { // wrap in {} // camelize path variable - items[i] = "{" + camelize(items[i].substring(1, items[i].length()-1), true) + "}"; + items[i] = "{" + camelize(items[i].substring(1, items[i].length() - 1), true) + "}"; } } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SlimFrameworkServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java similarity index 92% rename from modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SlimFrameworkServerCodegen.java rename to modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java index 0d7e38eaed8..6d0a195693c 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/SlimFrameworkServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpSlimServerCodegen.java @@ -18,7 +18,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.regex.Matcher; -public class SlimFrameworkServerCodegen extends DefaultCodegen implements CodegenConfig { +public class PhpSlimServerCodegen extends DefaultCodegen implements CodegenConfig { protected String invokerPackage; protected String srcBasePath = "lib"; protected String groupId = "io.swagger"; @@ -29,7 +29,7 @@ public class SlimFrameworkServerCodegen extends DefaultCodegen implements Codege private String variableNamingConvention = "camelCase"; - public SlimFrameworkServerCodegen() { + public PhpSlimServerCodegen() { super(); // clear import mapping (from default generator) as slim does not use it @@ -120,8 +120,8 @@ public class SlimFrameworkServerCodegen extends DefaultCodegen implements Codege } @Override - public String escapeReservedWord(String name) { - if(this.reservedWordsMappings().containsKey(name)) { + public String escapeReservedWord(String name) { + if (this.reservedWordsMappings().containsKey(name)) { return this.reservedWordsMappings().get(name); } return "_" + name; @@ -199,11 +199,11 @@ public class SlimFrameworkServerCodegen extends DefaultCodegen implements Codege if ("camelCase".equals(variableNamingConvention)) { // return the name in camelCase style // phone_number => phoneNumber - name = camelize(name, true); + name = camelize(name, true); } else { // default to snake case // return the name in underscore style // PhoneNumber => phone_number - name = underscore(name); + name = underscore(name); } // parameter name starting with number won't compile @@ -260,12 +260,12 @@ public class SlimFrameworkServerCodegen extends DefaultCodegen implements Codege } return (getPackagePath() + File.separatorChar + basePath - // Replace period, backslash, forward slash with file separator in package name - + packageName.replaceAll("[\\.\\\\/]", Matcher.quoteReplacement(File.separator)) - // Trim prefix file separators from package path - .replaceAll(regFirstPathSeparator, "")) - // Trim trailing file separators from the overall path - .replaceAll(regLastPathSeparator+ "$", ""); + // Replace period, backslash, forward slash with file separator in package name + + packageName.replaceAll("[\\.\\\\/]", Matcher.quoteReplacement(File.separator)) + // Trim prefix file separators from package path + .replaceAll(regFirstPathSeparator, "")) + // Trim trailing file separators from the overall path + .replaceAll(regLastPathSeparator + "$", ""); } public String getPackagePath() { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpZendExpressivePathHandlerServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpZendExpressivePathHandlerServerCodegen.java new file mode 100644 index 00000000000..6186919fa85 --- /dev/null +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PhpZendExpressivePathHandlerServerCodegen.java @@ -0,0 +1,336 @@ +package org.openapitools.codegen.languages; + +import io.swagger.v3.oas.models.PathItem; +import org.openapitools.codegen.*; + +import io.swagger.v3.oas.models.PathItem.HttpMethod; +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.oas.models.Operation; +import io.swagger.v3.oas.models.media.*; +import io.swagger.v3.core.util.Yaml; +import io.swagger.v3.oas.models.parameters.*; + + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class PhpZendExpressivePathHandlerServerCodegen extends AbstractPhpCodegen { + + public static final String VEN_FROM_QUERY = "internal.ze-ph.fromQuery"; + public static final String VEN_COLLECTION_FORMAT = "internal.ze-ph.collectionFormat"; + public static final String VEN_QUERY_DATA_TYPE = "internal.ze-ph.queryDataType"; + public static final String VEN_HAS_QUERY_DATA = "internal.ze-ph.hasQueryData"; + + @Override + public CodegenType getTag() { + return CodegenType.SERVER; + } + + @Override + public String getName() { + return "php-ze-ph"; + } + + @Override + public String getHelp() { + return "Generates PHP server stub using Zend Expressive ( https://zendframework.github.io/zend-expressive ) and Path Handler ( https://github.com/Articus/PathHandler )."; + } + + public PhpZendExpressivePathHandlerServerCodegen() { + super(); + //no point to use double - http://php.net/manual/en/language.types.float.php , especially because of PHP 7+ float type declaration + typeMapping.put("double", "float"); + + embeddedTemplateDir = templateDir = "ze-ph"; + invokerPackage = "App"; + packagePath = ""; + srcBasePath = "src" + File.separator + "App"; + apiDirName = "Handler"; + modelDirName = "DTO"; + apiPackage = invokerPackage + "\\" + apiDirName; + modelPackage = invokerPackage + "\\" + modelDirName; + + apiTestTemplateFiles.clear(); + modelTestTemplateFiles.clear(); + apiDocTemplateFiles.clear(); + modelDocTemplateFiles.clear(); + + supportingFiles.add(new SupportingFile("README.md.mustache", packagePath, "README.md")); + supportingFiles.add(new SupportingFile("composer.json.mustache", packagePath, "composer.json")); + supportingFiles.add(new SupportingFile("index.php", packagePath + File.separator + "public", "index.php")); + supportingFiles.add(new SupportingFile("container.php", packagePath + File.separator + "application", "container.php")); + supportingFiles.add(new SupportingFile("config.yml", packagePath + File.separator + "application", "config.yml")); + supportingFiles.add(new SupportingFile("app.yml.mustache", packagePath + File.separator + "application" + File.separator + "config", "app.yml")); + supportingFiles.add(new SupportingFile("path_handler.yml.mustache", packagePath + File.separator + "application" + File.separator + "config", "path_handler.yml")); + supportingFiles.add(new SupportingFile("data_transfer.yml.mustache", packagePath + File.separator + "application" + File.separator + "config", "data_transfer.yml")); + supportingFiles.add(new SupportingFile("ErrorMiddleware.php.mustache", packagePath + File.separator + srcBasePath, "ErrorMiddleware.php")); + supportingFiles.add(new SupportingFile("Date.php.mustache", packagePath + File.separator + srcBasePath + File.separator + "Strategy", "Date.php")); + supportingFiles.add(new SupportingFile("DateTime.php.mustache", packagePath + File.separator + srcBasePath + File.separator + "Strategy", "DateTime.php")); + supportingFiles.add(new SupportingFile("QueryParameter.php.mustache", packagePath + File.separator + srcBasePath + File.separator + "Strategy", "QueryParameter.php")); + supportingFiles.add(new SupportingFile("QueryParameterArray.php.mustache", packagePath + File.separator + srcBasePath + File.separator + "Strategy", "QueryParameterArray.php")); + supportingFiles.add(new SupportingFile("Type.php.mustache", packagePath + File.separator + srcBasePath + File.separator + "Validator", "Type.php")); + supportingFiles.add(new SupportingFile("QueryParameterType.php.mustache", packagePath + File.separator + srcBasePath + File.separator + "Validator", "QueryParameterType.php")); + supportingFiles.add(new SupportingFile("QueryParameterArrayType.php.mustache", packagePath + File.separator + srcBasePath + File.separator + "Validator", "QueryParameterArrayType.php")); + + additionalProperties.put(CodegenConstants.ARTIFACT_VERSION, "1.0.0"); + } + + /** + * Add operation to group + * Override of default grouping - group by resource path, not tag + * + * @param tag name of the tag + * @param resourcePath path of the resource + * @param operation Swagger Operation object + * @param co Codegen Operation object + * @param operations map of Codegen operations + */ + @Override + public void addOperationToGroup(String tag, String resourcePath, Operation operation, CodegenOperation co, Map> operations) { + List opList = operations.get(resourcePath); + if (opList == null) { + opList = new ArrayList(); + operations.put(resourcePath, opList); + } + //ignore duplicate operation ids - that means that operation has several tags + int counter = 0; + for (CodegenOperation op : opList) { + if (co.operationId.equals(op.operationId)) { + counter++; + } + } + if (counter == 0) { + co.operationIdLowerCase = co.operationId.toLowerCase(); + opList.add(co); + co.baseName = tag; + } + } + + /** + * Return the file name of the Api Test + * + * @param name the file name of the Api + * @return the file name of the Api + */ + @Override + public String toApiFilename(String name) { + return toApiName(name); + } + + /** + * Output the API (class) name (capitalized) ending with "Api" + * Return DefaultApi if name is empty + * + * @param name the name of the Api + * @return capitalized Api name ending with "Api" + */ + @Override + public String toApiName(String name) { + //Remove } + name = name.replaceAll("[\\}]", ""); + return super.toModelName(name); + } + + /** + * Generate additional model definitions from query parameters + * + * @param openAPI OpenAPI object + */ + @Override + public void preprocessOpenAPI(OpenAPI openAPI) { + super.preprocessOpenAPI(openAPI); + + Map paths = openAPI.getPaths(); + if (paths != null) { + for (String pathname : paths.keySet()) { + PathItem path = paths.get(pathname); + Map operationMap = path.readOperationsMap(); + if (operationMap != null) { + for (HttpMethod method : operationMap.keySet()) { + Operation operation = operationMap.get(method); + Map schemas = new HashMap<>(); + if (operation == null || operation.getParameters() == null) { + continue; + } + + for (Parameter parameter : operation.getParameters()) { + Schema schema = convertParameterToSchema(parameter); + if (schema != null) { + schemas.put(schema.getName(), schema); + } + } + + if (!schemas.isEmpty()) { + Schema model = new Schema(); + String operationId = getOrGenerateOperationId(operation, pathname, method.name()); + model.setDescription("Query parameters for " + operationId); + model.setProperties(schemas); + model.getExtensions().put(VEN_FROM_QUERY, Boolean.TRUE); + String definitionName = generateUniqueDefinitionName(operationId + "QueryData", openAPI); + openAPI.getComponents().addSchemas(definitionName, model); + String definitionModel = "\\" + modelPackage + "\\" + toModelName(definitionName); + operation.getExtensions().put(VEN_QUERY_DATA_TYPE, definitionModel); + operation.getExtensions().put(VEN_HAS_QUERY_DATA, Boolean.TRUE); + } + } + } + } + } + } + + protected Schema convertParameterToSchema(Parameter parameter) { + Schema property = null; + if (parameter instanceof QueryParameter) { + QueryParameter queryParameter = (QueryParameter) parameter; + // array + if (queryParameter.getSchema() instanceof ArraySchema) { + Schema inner = ((ArraySchema) queryParameter.getSchema()).getItems(); + ArraySchema arraySchema = new ArraySchema(); + arraySchema.setMinItems(queryParameter.getSchema().getMinItems()); + arraySchema.setMaxItems(queryParameter.getSchema().getMaxItems()); + arraySchema.setItems(inner); + String collectionFormat = getCollectionFormat(queryParameter); + if (collectionFormat == null) { + collectionFormat = "csv"; + } + arraySchema.getExtensions().put(VEN_COLLECTION_FORMAT, collectionFormat); + property = arraySchema; + } else { // non-array e.g. string, integer + switch (queryParameter.getSchema().getType()) { + case "string": + StringSchema stringSchema = new StringSchema(); + stringSchema.setMinLength(queryParameter.getSchema().getMinLength()); + stringSchema.setMaxLength(queryParameter.getSchema().getMaxLength()); + stringSchema.setPattern(queryParameter.getSchema().getPattern()); + stringSchema.setEnum(queryParameter.getSchema().getEnum()); + property = stringSchema; + break; + case "integer": + IntegerSchema integerSchema = new IntegerSchema(); + integerSchema.setMinimum(queryParameter.getSchema().getMinimum()); + integerSchema.setMaximum(queryParameter.getSchema().getMaximum()); + property = integerSchema; + break; + case "number": + NumberSchema floatSchema = new NumberSchema(); + floatSchema.setMinimum(queryParameter.getSchema().getMinimum()); + floatSchema.setMaximum(queryParameter.getSchema().getMaximum()); + property = floatSchema; + break; + case "boolean": + property = new BooleanSchema(); + break; + case "date": + property = new DateSchema(); + break; + case "date-time": + property = new DateTimeSchema(); + break; + } + } + if (property != null) { + property.setName(queryParameter.getName()); + property.setDescription(queryParameter.getDescription()); + if (Boolean.TRUE.equals(queryParameter.getRequired())) { + List required = new ArrayList(); + required.add(queryParameter.getName()); + } + + property.getExtensions().put(VEN_FROM_QUERY, Boolean.TRUE); + } + } + return property; + } + + protected String generateUniqueDefinitionName(String name, OpenAPI openAPI) { + String result = name; + if (openAPI.getComponents().getSchemas() != null) { + int count = 1; + while (openAPI.getComponents().getSchemas().containsKey(result)) { + result = name + "_" + count; + count += 1; + } + } + return result; + } + + @Override + public Map postProcessOperations(Map objs) { + objs = super.postProcessOperations(objs); + Map operations = (Map) objs.get("operations"); + List operationList = (List) operations.get("operation"); + String interfaceToImplement; + StringBuilder interfacesToImplement = new StringBuilder(); + String classMethod; + String pathPattern = null; + for (CodegenOperation op : operationList) { + switch (op.httpMethod) { + case "GET": + interfaceToImplement = "Operation\\GetInterface"; + classMethod = "handleGet"; + break; + case "POST": + interfaceToImplement = "Operation\\PostInterface"; + classMethod = "handlePost"; + break; + case "PATCH": + interfaceToImplement = "Operation\\PatchInterface"; + classMethod = "handlePatch"; + break; + case "PUT": + interfaceToImplement = "Operation\\PutInterface"; + classMethod = "handlePut"; + break; + case "DELETE": + interfaceToImplement = "Operation\\DeleteInterface"; + classMethod = "handleDelete"; + break; + default: + throw new RuntimeException("Unknown HTTP Method " + op.httpMethod + " not allowed"); + } + if (interfacesToImplement.length() > 0) { + interfacesToImplement.append(", "); + } + interfacesToImplement.append(interfaceToImplement); + op.httpMethod = classMethod; + //All operations have same path because of custom operation grouping, so path pattern can be calculated only once + if (pathPattern == null) { + pathPattern = generatePathPattern(op); + } + } + operations.put("interfacesToImplement", interfacesToImplement.toString()); + operations.put("pathPattern", pathPattern); + + return objs; + } + + protected String generatePathPattern(CodegenOperation op) { + String result = op.path; + for (CodegenParameter pp : op.pathParams) { + StringBuilder replacement = new StringBuilder("{" + pp.paramName); + if (pp.isEnum) { + StringBuilder enumRegExp = new StringBuilder(); + for (String enumValue : pp._enum) { + if (enumRegExp.length() > 0) { + enumRegExp.append("|"); + } + enumRegExp.append(enumValue.replaceAll("[\\Q<>()[]{}|^$-=!?*+.\\\\E]", "\\\\$0")); + } + replacement.append(":"); + replacement.append(enumRegExp); + } else if (pp.isInteger) { + replacement.append(":0|(?:-?[1-9][0-9]*)"); + } else if (pp.isString && (pp.pattern != null) && (!pp.pattern.isEmpty())) { + replacement.append(":"); + replacement.append(pp.pattern); + } + //TODO add regular expressions for other types if they are actually used for path parameters + replacement.append("}"); + result = result.replace("{" + pp.paramName + "}", replacement); + } + return result; + } +} diff --git a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig index 375e6e0256a..757146defcb 100644 --- a/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig +++ b/modules/openapi-generator/src/main/resources/META-INF/services/org.openapitools.codegen.CodegenConfig @@ -12,7 +12,10 @@ org.openapitools.codegen.languages.KotlinServerCodegen org.openapitools.codegen.languages.HaskellServantCodegen org.openapitools.codegen.languages.JavascriptClientCodegen org.openapitools.codegen.languages.LuaClientCodegen -org.openapitools.codegen.languages.LumenServerCodegen +org.openapitools.codegen.languages.PhpLumenServerCodegen +org.openapitools.codegen.languages.PhpSlimServerCodegen +org.openapitools.codegen.languages.PhpSilexServerCodegen +org.openapitools.codegen.languages.PhpZendExpressivePathHandlerServerCodegen org.openapitools.codegen.languages.ObjcClientCodegen org.openapitools.codegen.languages.PerlClientCodegen org.openapitools.codegen.languages.PhpClientCodegen @@ -24,8 +27,6 @@ org.openapitools.codegen.languages.RClientCodegen org.openapitools.codegen.languages.RubyOnRailsServerCodegen org.openapitools.codegen.languages.RubyClientCodegen org.openapitools.codegen.languages.ScalaClientCodegen -org.openapitools.codegen.languages.SlimFrameworkServerCodegen -org.openapitools.codegen.languages.SilexServerCodegen org.openapitools.codegen.languages.SinatraServerCodegen org.openapitools.codegen.languages.TizenClientCodegen org.openapitools.codegen.languages.TypeScriptAngularClientCodegen diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/lumen/LumenServerOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/lumen/LumenServerOptionsTest.java deleted file mode 100644 index 9a270837251..00000000000 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/lumen/LumenServerOptionsTest.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.openapitools.codegen.lumen; - -import org.openapitools.codegen.AbstractOptionsTest; -import org.openapitools.codegen.CodegenConfig; -import org.openapitools.codegen.languages.LumenServerCodegen; -import org.openapitools.codegen.options.LumenServerOptionsProvider; - -import mockit.Expectations; -import mockit.Tested; - -public class LumenServerOptionsTest extends AbstractOptionsTest { - - @Tested - private LumenServerCodegen clientCodegen; - - public LumenServerOptionsTest() { - super(new LumenServerOptionsProvider()); - } - - @Override - protected CodegenConfig getCodegenConfig() { - return clientCodegen; - } - - @SuppressWarnings("unused") - @Override - protected void setExpectations() { - new Expectations(clientCodegen) {{ - clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(LumenServerOptionsProvider.SORT_PARAMS_VALUE)); - times = 1; - clientCodegen.setParameterNamingConvention(LumenServerOptionsProvider.VARIABLE_NAMING_CONVENTION_VALUE); - clientCodegen.setModelPackage(LumenServerOptionsProvider.MODEL_PACKAGE_VALUE); - times = 1; - clientCodegen.setApiPackage(LumenServerOptionsProvider.API_PACKAGE_VALUE); - times = 1; - times = 1; - clientCodegen.setInvokerPackage(LumenServerOptionsProvider.INVOKER_PACKAGE_VALUE); - times = 1; - clientCodegen.setPackagePath(LumenServerOptionsProvider.PACKAGE_PATH_VALUE); - times = 1; - clientCodegen.setSrcBasePath(LumenServerOptionsProvider.SRC_BASE_PATH_VALUE); - times = 1; - clientCodegen.setGitUserId(LumenServerOptionsProvider.GIT_USER_ID_VALUE); - times = 1; - clientCodegen.setGitRepoId(LumenServerOptionsProvider.GIT_REPO_ID_VALUE); - times = 1; - clientCodegen.setArtifactVersion(LumenServerOptionsProvider.ARTIFACT_VERSION_VALUE); - times = 1; - }}; - } -} diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/lumen/PhpLumenServerOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/lumen/PhpLumenServerOptionsTest.java new file mode 100644 index 00000000000..cf29430f578 --- /dev/null +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/lumen/PhpLumenServerOptionsTest.java @@ -0,0 +1,51 @@ +package org.openapitools.codegen.lumen; + +import org.openapitools.codegen.AbstractOptionsTest; +import org.openapitools.codegen.CodegenConfig; +import org.openapitools.codegen.languages.PhpLumenServerCodegen; +import org.openapitools.codegen.options.PhpLumenServerOptionsProvider; + +import mockit.Expectations; +import mockit.Tested; + +public class PhpLumenServerOptionsTest extends AbstractOptionsTest { + + @Tested + private PhpLumenServerCodegen clientCodegen; + + public PhpLumenServerOptionsTest() { + super(new PhpLumenServerOptionsProvider()); + } + + @Override + protected CodegenConfig getCodegenConfig() { + return clientCodegen; + } + + @SuppressWarnings("unused") + @Override + protected void setExpectations() { + new Expectations(clientCodegen) {{ + clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(PhpLumenServerOptionsProvider.SORT_PARAMS_VALUE)); + times = 1; + clientCodegen.setParameterNamingConvention(PhpLumenServerOptionsProvider.VARIABLE_NAMING_CONVENTION_VALUE); + clientCodegen.setModelPackage(PhpLumenServerOptionsProvider.MODEL_PACKAGE_VALUE); + times = 1; + clientCodegen.setApiPackage(PhpLumenServerOptionsProvider.API_PACKAGE_VALUE); + times = 1; + times = 1; + clientCodegen.setInvokerPackage(PhpLumenServerOptionsProvider.INVOKER_PACKAGE_VALUE); + times = 1; + clientCodegen.setPackagePath(PhpLumenServerOptionsProvider.PACKAGE_PATH_VALUE); + times = 1; + clientCodegen.setSrcBasePath(PhpLumenServerOptionsProvider.SRC_BASE_PATH_VALUE); + times = 1; + clientCodegen.setGitUserId(PhpLumenServerOptionsProvider.GIT_USER_ID_VALUE); + times = 1; + clientCodegen.setGitRepoId(PhpLumenServerOptionsProvider.GIT_REPO_ID_VALUE); + times = 1; + clientCodegen.setArtifactVersion(PhpLumenServerOptionsProvider.ARTIFACT_VERSION_VALUE); + times = 1; + }}; + } +} diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/silex/SilexServerOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/silex/PhpSilexServerOptionsTest.java similarity index 57% rename from modules/openapi-generator/src/test/java/org/openapitools/codegen/silex/SilexServerOptionsTest.java rename to modules/openapi-generator/src/test/java/org/openapitools/codegen/silex/PhpSilexServerOptionsTest.java index 3f8ac24de59..c453d1a4ab1 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/silex/SilexServerOptionsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/silex/PhpSilexServerOptionsTest.java @@ -2,19 +2,19 @@ package org.openapitools.codegen.silex; import org.openapitools.codegen.AbstractOptionsTest; import org.openapitools.codegen.CodegenConfig; -import org.openapitools.codegen.languages.SilexServerCodegen; -import org.openapitools.codegen.options.SilexServerOptionsProvider; +import org.openapitools.codegen.languages.PhpSilexServerCodegen; +import org.openapitools.codegen.options.PhpSilexServerOptionsProvider; import mockit.Expectations; import mockit.Tested; -public class SilexServerOptionsTest extends AbstractOptionsTest { +public class PhpSilexServerOptionsTest extends AbstractOptionsTest { @Tested - private SilexServerCodegen clientCodegen; + private PhpSilexServerCodegen clientCodegen; - public SilexServerOptionsTest() { - super(new SilexServerOptionsProvider()); + public PhpSilexServerOptionsTest() { + super(new PhpSilexServerOptionsProvider()); } @Override @@ -26,7 +26,7 @@ public class SilexServerOptionsTest extends AbstractOptionsTest { @Override protected void setExpectations() { new Expectations(clientCodegen) {{ - clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(SilexServerOptionsProvider.SORT_PARAMS_VALUE)); + clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(PhpSilexServerOptionsProvider.SORT_PARAMS_VALUE)); times = 1; }}; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/codegen/slim/SlimFrameworkServerOptionsTest.java b/modules/openapi-generator/src/test/java/org/openapitools/codegen/slim/PhpSlimServerOptionsTest.java similarity index 55% rename from modules/openapi-generator/src/test/java/org/openapitools/codegen/slim/SlimFrameworkServerOptionsTest.java rename to modules/openapi-generator/src/test/java/org/openapitools/codegen/slim/PhpSlimServerOptionsTest.java index 6e2e06e3a67..4730fceae2b 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/codegen/slim/SlimFrameworkServerOptionsTest.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/codegen/slim/PhpSlimServerOptionsTest.java @@ -2,19 +2,19 @@ package org.openapitools.codegen.slim; import org.openapitools.codegen.AbstractOptionsTest; import org.openapitools.codegen.CodegenConfig; -import org.openapitools.codegen.languages.SlimFrameworkServerCodegen; -import org.openapitools.codegen.options.SlimFrameworkServerOptionsProvider; +import org.openapitools.codegen.languages.PhpSlimServerCodegen; +import org.openapitools.codegen.options.PhpSlimServerOptionsProvider; import mockit.Expectations; import mockit.Tested; -public class SlimFrameworkServerOptionsTest extends AbstractOptionsTest { +public class PhpSlimServerOptionsTest extends AbstractOptionsTest { @Tested - private SlimFrameworkServerCodegen clientCodegen; + private PhpSlimServerCodegen clientCodegen; - public SlimFrameworkServerOptionsTest() { - super(new SlimFrameworkServerOptionsProvider()); + public PhpSlimServerOptionsTest() { + super(new PhpSlimServerOptionsProvider()); } @Override @@ -26,7 +26,7 @@ public class SlimFrameworkServerOptionsTest extends AbstractOptionsTest { @Override protected void setExpectations() { new Expectations(clientCodegen) {{ - clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(SlimFrameworkServerOptionsProvider.SORT_PARAMS_VALUE)); + clientCodegen.setSortParamsByRequiredFlag(Boolean.valueOf(PhpSlimServerOptionsProvider.SORT_PARAMS_VALUE)); times = 1; }}; } diff --git a/modules/openapi-generator/src/test/java/org/openapitools/options/LumenServerOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/options/PhpLumenServerOptionsProvider.java similarity index 97% rename from modules/openapi-generator/src/test/java/org/openapitools/options/LumenServerOptionsProvider.java rename to modules/openapi-generator/src/test/java/org/openapitools/options/PhpLumenServerOptionsProvider.java index ad7e7d8fef5..3ec1980c3e7 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/options/LumenServerOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/options/PhpLumenServerOptionsProvider.java @@ -7,7 +7,7 @@ import com.google.common.collect.ImmutableMap; import java.util.Map; -public class LumenServerOptionsProvider implements OptionsProvider { +public class PhpLumenServerOptionsProvider implements OptionsProvider { public static final String MODEL_PACKAGE_VALUE = "package"; public static final String API_PACKAGE_VALUE = "apiPackage"; public static final String SORT_PARAMS_VALUE = "false"; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/options/SilexServerOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/options/PhpSilexServerOptionsProvider.java similarity index 94% rename from modules/openapi-generator/src/test/java/org/openapitools/options/SilexServerOptionsProvider.java rename to modules/openapi-generator/src/test/java/org/openapitools/options/PhpSilexServerOptionsProvider.java index de4a9202611..9ef424f6680 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/options/SilexServerOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/options/PhpSilexServerOptionsProvider.java @@ -6,7 +6,7 @@ import com.google.common.collect.ImmutableMap; import java.util.Map; -public class SilexServerOptionsProvider implements OptionsProvider { +public class PhpSilexServerOptionsProvider implements OptionsProvider { public static final String SORT_PARAMS_VALUE = "false"; public static final String ENSURE_UNIQUE_PARAMS_VALUE = "true"; public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE = "false"; diff --git a/modules/openapi-generator/src/test/java/org/openapitools/options/SlimFrameworkServerOptionsProvider.java b/modules/openapi-generator/src/test/java/org/openapitools/options/PhpSlimServerOptionsProvider.java similarity index 93% rename from modules/openapi-generator/src/test/java/org/openapitools/options/SlimFrameworkServerOptionsProvider.java rename to modules/openapi-generator/src/test/java/org/openapitools/options/PhpSlimServerOptionsProvider.java index 22f3a231f4b..d2aa3302d78 100644 --- a/modules/openapi-generator/src/test/java/org/openapitools/options/SlimFrameworkServerOptionsProvider.java +++ b/modules/openapi-generator/src/test/java/org/openapitools/options/PhpSlimServerOptionsProvider.java @@ -6,7 +6,7 @@ import com.google.common.collect.ImmutableMap; import java.util.Map; -public class SlimFrameworkServerOptionsProvider implements OptionsProvider { +public class PhpSlimServerOptionsProvider implements OptionsProvider { public static final String SORT_PARAMS_VALUE = "false"; public static final String ENSURE_UNIQUE_PARAMS_VALUE = "true"; public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE = "false";