forked from loafle/openapi-generator-original
[scala] [template] scala model property style (#5486)
* Model property naming style generic for scala * scala templates based on abstractScala regererated * docs generators updated * property format tests
This commit is contained in:
committed by
GitHub
parent
a10452e37f
commit
6dd76d65e7
@@ -10,6 +10,7 @@ sidebar_label: scala-akka
|
||||
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|
||||
|mainPackage|Top-level package name, which defines 'apiPackage', 'modelPackage', 'invokerPackage'| |org.openapitools.client|
|
||||
|modelPackage|package for generated models| |null|
|
||||
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|
||||
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|
||||
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|
||||
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
|
||||
|
||||
@@ -9,6 +9,7 @@ sidebar_label: scala-gatling
|
||||
|apiPackage|package for generated api classes| |null|
|
||||
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|
||||
|modelPackage|package for generated models| |null|
|
||||
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|
||||
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|
||||
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|
||||
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
|
||||
|
||||
@@ -11,6 +11,7 @@ sidebar_label: scala-play-server
|
||||
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|
||||
|generateCustomExceptions|If set, generates custom exception types.| |true|
|
||||
|modelPackage|package for generated models| |null|
|
||||
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|
||||
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|
||||
|routesFileName|Name of the routes file to generate.| |routes|
|
||||
|skipStubs|If set, skips generation of stub classes.| |false|
|
||||
|
||||
@@ -10,6 +10,7 @@ sidebar_label: scala-sttp
|
||||
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|
||||
|mainPackage|Top-level package name, which defines 'apiPackage', 'modelPackage', 'invokerPackage'| |org.openapitools.client|
|
||||
|modelPackage|package for generated models| |null|
|
||||
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|
||||
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|
||||
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|
||||
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
|
||||
|
||||
@@ -9,6 +9,7 @@ sidebar_label: scalatra
|
||||
|apiPackage|package for generated api classes| |null|
|
||||
|ensureUniqueParams|Whether to ensure parameter names are unique in an operation (rename parameters that are not).| |true|
|
||||
|modelPackage|package for generated models| |null|
|
||||
|modelPropertyNaming|Naming convention for the property: 'camelCase', 'PascalCase', 'snake_case' and 'original', which keeps the original name| |camelCase|
|
||||
|prependFormOrBodyParameters|Add form or body parameters to the beginning of the parameter list.| |false|
|
||||
|sortModelPropertiesByRequiredFlag|Sort model properties to place required parameters before optional parameters.| |true|
|
||||
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
|
||||
|
||||
@@ -35,11 +35,12 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.openapitools.codegen.utils.StringUtils.camelize;
|
||||
import static org.openapitools.codegen.utils.StringUtils.underscore;
|
||||
|
||||
public abstract class AbstractScalaCodegen extends DefaultCodegen {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(AbstractScalaCodegen.class);
|
||||
|
||||
protected String modelPropertyNaming = "camelCase";
|
||||
protected String modelPropertyNaming = CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.camelCase.name();
|
||||
protected String invokerPackage = "org.openapitools.client";
|
||||
protected String sourceFolder = "src/main/scala";
|
||||
protected boolean stripPackageName = true;
|
||||
@@ -115,6 +116,7 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen {
|
||||
cliOptions.add(new CliOption(CodegenConstants.MODEL_PACKAGE, CodegenConstants.MODEL_PACKAGE_DESC));
|
||||
cliOptions.add(new CliOption(CodegenConstants.API_PACKAGE, CodegenConstants.API_PACKAGE_DESC));
|
||||
cliOptions.add(new CliOption(CodegenConstants.SOURCE_FOLDER, CodegenConstants.SOURCE_FOLDER_DESC));
|
||||
cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING, CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue(modelPropertyNaming));
|
||||
|
||||
}
|
||||
|
||||
@@ -137,6 +139,62 @@ public abstract class AbstractScalaCodegen extends DefaultCodegen {
|
||||
LOGGER.warn("stripPackageName=false. Compilation errors may occur if API type names clash with types " +
|
||||
"in the default imports");
|
||||
}
|
||||
if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) {
|
||||
setModelPropertyNaming(
|
||||
(String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING));
|
||||
}
|
||||
}
|
||||
|
||||
public void setModelPropertyNaming(String naming) {
|
||||
try {
|
||||
this.modelPropertyNaming = CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.valueOf(naming).name();
|
||||
} catch (IllegalArgumentException ex) {
|
||||
throw new IllegalArgumentException("Invalid model property naming '" +
|
||||
naming + "'. Must be 'original', 'camelCase', " +
|
||||
"'PascalCase' or 'snake_case'");
|
||||
}
|
||||
}
|
||||
|
||||
public String getModelPropertyNaming() {
|
||||
return this.modelPropertyNaming;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toVarName(String name) {
|
||||
String varName = sanitizeName(name);
|
||||
|
||||
if ("_".equals(varName)) {
|
||||
varName = "_u";
|
||||
}
|
||||
|
||||
// if it's all uppper case, do nothing
|
||||
if (!varName.matches("^[A-Z_0-9]*$")) {
|
||||
varName = getNameUsingModelPropertyNaming(varName);
|
||||
}
|
||||
|
||||
if (isReservedWord(varName) || varName.matches("^\\d.*")) {
|
||||
varName = escapeReservedWord(varName);
|
||||
}
|
||||
|
||||
return varName;
|
||||
}
|
||||
|
||||
public String getNameUsingModelPropertyNaming(String name) {
|
||||
switch (CodegenConstants.MODEL_PROPERTY_NAMING_TYPE.valueOf(getModelPropertyNaming())) {
|
||||
case original:
|
||||
return name;
|
||||
case camelCase:
|
||||
return camelize(name, true);
|
||||
case PascalCase:
|
||||
return camelize(name);
|
||||
case snake_case:
|
||||
return underscore(name);
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid model property naming '" +
|
||||
name + "'. Must be 'original', 'camelCase', " +
|
||||
"'PascalCase' or 'snake_case'");
|
||||
}
|
||||
}
|
||||
|
||||
public String getSourceFolder() {
|
||||
|
||||
@@ -262,11 +262,6 @@ public class ScalaAkkaClientCodegen extends AbstractScalaCodegen implements Code
|
||||
return formatIdentifier(name, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toVarName(String name) {
|
||||
return formatIdentifier(name, false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toEnumName(CodegenProperty property) {
|
||||
return formatIdentifier(property.baseName, true);
|
||||
|
||||
@@ -156,58 +156,13 @@ public class ScalaHttpClientCodegen extends AbstractScalaCodegen implements Code
|
||||
|
||||
instantiationTypes.put("array", "ListBuffer");
|
||||
instantiationTypes.put("map", "HashMap");
|
||||
|
||||
cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING, CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue("camelCase"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processOpts() {
|
||||
LOGGER.warn("IMPORTANT: This generator (scala-http-client-deprecated) is no longer actively maintained and will be deprecated. " +
|
||||
"PLease use 'scala-akka' generator instead.");
|
||||
|
||||
super.processOpts();
|
||||
if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) {
|
||||
setModelPropertyNaming((String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING));
|
||||
}
|
||||
}
|
||||
|
||||
public void setModelPropertyNaming(String naming) {
|
||||
if ("original".equals(naming) || "camelCase".equals(naming) ||
|
||||
"PascalCase".equals(naming) || "snake_case".equals(naming)) {
|
||||
this.modelPropertyNaming = naming;
|
||||
} else {
|
||||
throw new IllegalArgumentException("Invalid model property naming '" +
|
||||
naming + "'. Must be 'original', 'camelCase', " +
|
||||
"'PascalCase' or 'snake_case'");
|
||||
}
|
||||
}
|
||||
|
||||
public String getModelPropertyNaming() {
|
||||
return this.modelPropertyNaming;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toVarName(String name) {
|
||||
// sanitize name
|
||||
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
|
||||
|
||||
if ("_".equals(name)) {
|
||||
name = "_u";
|
||||
}
|
||||
|
||||
// if it's all uppper case, do nothing
|
||||
if (name.matches("^[A-Z_]*$")) {
|
||||
return name;
|
||||
}
|
||||
|
||||
name = getNameUsingModelPropertyNaming(name);
|
||||
|
||||
// for reserved word or word starting with number, append _
|
||||
if (isReservedWord(name) || name.matches("^\\d.*")) {
|
||||
name = escapeReservedWord(name);
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -216,24 +171,6 @@ public class ScalaHttpClientCodegen extends AbstractScalaCodegen implements Code
|
||||
return toVarName(name);
|
||||
}
|
||||
|
||||
public String getNameUsingModelPropertyNaming(String name) {
|
||||
switch (CodegenConstants.MODEL_PROPERTY_NAMING_TYPE.valueOf(getModelPropertyNaming())) {
|
||||
case original:
|
||||
return name;
|
||||
case camelCase:
|
||||
return camelize(name, true);
|
||||
case PascalCase:
|
||||
return camelize(name);
|
||||
case snake_case:
|
||||
return underscore(name);
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid model property naming '" +
|
||||
name + "'. Must be 'original', 'camelCase', " +
|
||||
"'PascalCase' or 'snake_case'");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public CodegenType getTag() {
|
||||
return CodegenType.CLIENT;
|
||||
|
||||
@@ -120,59 +120,11 @@ public class ScalaLagomServerCodegen extends AbstractScalaCodegen implements Cod
|
||||
|
||||
instantiationTypes.put("array", "ListBuffer");
|
||||
instantiationTypes.put("map", "HashMap");
|
||||
|
||||
cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING,
|
||||
CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue("camelCase"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processOpts() {
|
||||
super.processOpts();
|
||||
|
||||
if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) {
|
||||
setModelPropertyNaming(
|
||||
(String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING));
|
||||
}
|
||||
}
|
||||
|
||||
public void setModelPropertyNaming(String naming) {
|
||||
if ("original".equals(naming) || "camelCase".equals(naming) ||
|
||||
"PascalCase".equals(naming) || "snake_case".equals(naming)) {
|
||||
this.modelPropertyNaming = naming;
|
||||
} else {
|
||||
throw new IllegalArgumentException("Invalid model property naming '" +
|
||||
naming + "'. Must be 'original', 'camelCase', " +
|
||||
"'PascalCase' or 'snake_case'");
|
||||
}
|
||||
}
|
||||
|
||||
public String getModelPropertyNaming() {
|
||||
return this.modelPropertyNaming;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toVarName(String name) {
|
||||
// sanitize name
|
||||
name = sanitizeName(
|
||||
name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
|
||||
|
||||
if ("_".equals(name)) {
|
||||
name = "_u";
|
||||
}
|
||||
|
||||
// if it's all uppper case, do nothing
|
||||
if (name.matches("^[A-Z_]*$")) {
|
||||
return name;
|
||||
}
|
||||
|
||||
name = getNameUsingModelPropertyNaming(name);
|
||||
|
||||
// for reserved word or word starting with number, append _
|
||||
if (isReservedWord(name) || name.matches("^\\d.*")) {
|
||||
name = escapeReservedWord(name);
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -181,24 +133,6 @@ public class ScalaLagomServerCodegen extends AbstractScalaCodegen implements Cod
|
||||
return toVarName(name);
|
||||
}
|
||||
|
||||
private String getNameUsingModelPropertyNaming(String name) {
|
||||
switch (CodegenConstants.MODEL_PROPERTY_NAMING_TYPE.valueOf(getModelPropertyNaming())) {
|
||||
case original:
|
||||
return name;
|
||||
case camelCase:
|
||||
return camelize(name, true);
|
||||
case PascalCase:
|
||||
return camelize(name);
|
||||
case snake_case:
|
||||
return underscore(name);
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid model property naming '" +
|
||||
name + "'. Must be 'original', 'camelCase', " +
|
||||
"'PascalCase' or 'snake_case'");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public CodegenType getTag() {
|
||||
return CodegenType.SERVER;
|
||||
|
||||
@@ -128,55 +128,11 @@ public class ScalazClientCodegen extends AbstractScalaCodegen implements Codegen
|
||||
instantiationTypes.put("map", "HashMap");
|
||||
|
||||
additionalProperties.put("fnEnumEntry", new EnumEntryLambda());
|
||||
|
||||
cliOptions.add(new CliOption(CodegenConstants.MODEL_PROPERTY_NAMING, CodegenConstants.MODEL_PROPERTY_NAMING_DESC).defaultValue("camelCase"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processOpts() {
|
||||
super.processOpts();
|
||||
if (additionalProperties.containsKey(CodegenConstants.MODEL_PROPERTY_NAMING)) {
|
||||
setModelPropertyNaming((String) additionalProperties.get(CodegenConstants.MODEL_PROPERTY_NAMING));
|
||||
}
|
||||
}
|
||||
|
||||
public void setModelPropertyNaming(String naming) {
|
||||
if ("original".equals(naming) || "camelCase".equals(naming) ||
|
||||
"PascalCase".equals(naming) || "snake_case".equals(naming)) {
|
||||
this.modelPropertyNaming = naming;
|
||||
} else {
|
||||
throw new IllegalArgumentException("Invalid model property naming '" +
|
||||
naming + "'. Must be 'original', 'camelCase', " +
|
||||
"'PascalCase' or 'snake_case'");
|
||||
}
|
||||
}
|
||||
|
||||
public String getModelPropertyNaming() {
|
||||
return this.modelPropertyNaming;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toVarName(String name) {
|
||||
// sanitize name
|
||||
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
|
||||
|
||||
if ("_".equals(name)) {
|
||||
name = "_u";
|
||||
}
|
||||
|
||||
// if it's all uppper case, do nothing
|
||||
if (name.matches("^[A-Z_]*$")) {
|
||||
return name;
|
||||
}
|
||||
|
||||
name = getNameUsingModelPropertyNaming(name);
|
||||
|
||||
// for reserved word or word starting with number, append _
|
||||
if (isReservedWord(name) || name.matches("^\\d.*")) {
|
||||
name = escapeReservedWord(name);
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -32,6 +32,7 @@ public class ScalaAkkaClientOptionsProvider implements OptionsProvider {
|
||||
public static final String ALLOW_UNICODE_IDENTIFIERS_VALUE = "false";
|
||||
public static final String PREPEND_FORM_OR_BODY_PARAMETERS_VALUE = "true";
|
||||
public static final String MAIN_PACKAGE_VALUE = "net.test";
|
||||
public static final String MODEL_PROPERTY_NAMING = "camelCase";
|
||||
|
||||
|
||||
@Override
|
||||
@@ -51,6 +52,7 @@ public class ScalaAkkaClientOptionsProvider implements OptionsProvider {
|
||||
.put(CodegenConstants.ALLOW_UNICODE_IDENTIFIERS, ALLOW_UNICODE_IDENTIFIERS_VALUE)
|
||||
.put(CodegenConstants.PREPEND_FORM_OR_BODY_PARAMETERS, PREPEND_FORM_OR_BODY_PARAMETERS_VALUE)
|
||||
.put("mainPackage", MAIN_PACKAGE_VALUE)
|
||||
.put(CodegenConstants.MODEL_PROPERTY_NAMING, MODEL_PROPERTY_NAMING)
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
package org.openapitools.codegen.scala;
|
||||
|
||||
import org.openapitools.codegen.CodegenConstants;
|
||||
import org.openapitools.codegen.languages.AbstractScalaCodegen;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
public class AbstractScalaCodegenTest {
|
||||
|
||||
private final AbstractScalaCodegen fakeScalaCodegen = new AbstractScalaCodegenTest.P_AbstractScalaCodegen();
|
||||
|
||||
private static class P_AbstractScalaCodegen extends AbstractScalaCodegen {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertVarNameCamelCase() {
|
||||
// with default camelCase
|
||||
Assert.assertEquals(CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.camelCase.name(), fakeScalaCodegen.getModelPropertyNaming());
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("name"), "name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user-name"), "userName");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user_name"), "userName");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user|name"), "userName");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("uSername"), "uSername");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("USERNAME"), "USERNAME");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("USER123NAME"), "USER123NAME");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1"), "`1`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1a"), "`1a`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1A"), "`1A`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAAA"), "`1AAAA`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAaa"), "`1aAaa`");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertVarNamePascalCase() {
|
||||
fakeScalaCodegen.setModelPropertyNaming(CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.PascalCase.name());
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("name"), "Name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user-name"), "UserName");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user_name"), "UserName");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user|name"), "UserName");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("uSername"), "USername");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("USERNAME"), "USERNAME");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("USER123NAME"), "USER123NAME");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1"), "`1`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1a"), "`1a`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1A"), "`1A`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAAA"), "`1AAAA`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAaa"), "`1AAaa`");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertVarNameSnakeCase() {
|
||||
fakeScalaCodegen.setModelPropertyNaming(CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.snake_case.name());
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("name"), "name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user-name"), "user_name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user_name"), "user_name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user|name"), "user_name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("uSername"), "u_sername");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("USERNAME"), "USERNAME");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("USER123NAME"), "USER123NAME");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1"), "`1`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1a"), "`1a`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1A"), "`1A`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAAA"), "`1AAAA`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAaa"), "`1_a_aaa`");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void convertVarNameOriginalCase() {
|
||||
fakeScalaCodegen.setModelPropertyNaming(CodegenConstants.ENUM_PROPERTY_NAMING_TYPE.original.name());
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("name"), "name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("Name"), "Name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("name-sanitized-to-underscore"), "name_sanitized_to_underscore");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user_name"), "user_name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("user|name"), "user_name");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("uSername"), "uSername");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("USERNAME"), "USERNAME");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("USER123NAME"), "USER123NAME");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1"), "`1`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1a"), "`1a`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1A"), "`1A`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAAA"), "`1AAAA`");
|
||||
Assert.assertEquals(fakeScalaCodegen.toVarName("1AAaa"), "`1AAaa`");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -46,5 +46,6 @@ public class ScalaAkkaClientOptionsTest extends AbstractOptionsTest {
|
||||
verify(clientCodegen).setSourceFolder(ScalaAkkaClientOptionsProvider.SOURCE_FOLDER_VALUE);
|
||||
verify(clientCodegen).setPrependFormOrBodyParameters(Boolean.valueOf(ScalaAkkaClientOptionsProvider.PREPEND_FORM_OR_BODY_PARAMETERS_VALUE));
|
||||
verify(clientCodegen).setMainPackage(ScalaAkkaClientOptionsProvider.MAIN_PACKAGE_VALUE);
|
||||
verify(clientCodegen).setModelPropertyNaming(ScalaAkkaClientOptionsProvider.MODEL_PROPERTY_NAMING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
|
||||
This Scala Play Framework project was generated by the OpenAPI generator tool at 2020-02-25T23:20:59.671788+07:00[Asia/Bangkok].
|
||||
This Scala Play Framework project was generated by the OpenAPI generator tool at 2020-02-29T14:21:53.710+07:00[Asia/Bangkok].
|
||||
|
||||
## API
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import model.ApiResponse
|
||||
import model.Pet
|
||||
import play.api.libs.Files.TemporaryFile
|
||||
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
trait PetApi {
|
||||
/**
|
||||
* Add a new pet to the store
|
||||
|
||||
@@ -8,7 +8,7 @@ import model.ApiResponse
|
||||
import model.Pet
|
||||
import play.api.libs.Files.TemporaryFile
|
||||
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
@Singleton
|
||||
class PetApiController @Inject()(cc: ControllerComponents, api: PetApi) extends AbstractController(cc) {
|
||||
/**
|
||||
|
||||
@@ -7,7 +7,7 @@ import play.api.libs.Files.TemporaryFile
|
||||
/**
|
||||
* Provides a default implementation for [[PetApi]].
|
||||
*/
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
class PetApiImpl extends PetApi {
|
||||
/**
|
||||
* @inheritdoc
|
||||
|
||||
@@ -2,7 +2,7 @@ package api
|
||||
|
||||
import model.Order
|
||||
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
trait StoreApi {
|
||||
/**
|
||||
* Delete purchase order by ID
|
||||
|
||||
@@ -6,7 +6,7 @@ import play.api.libs.json._
|
||||
import play.api.mvc._
|
||||
import model.Order
|
||||
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
@Singleton
|
||||
class StoreApiController @Inject()(cc: ControllerComponents, api: StoreApi) extends AbstractController(cc) {
|
||||
/**
|
||||
|
||||
@@ -5,7 +5,7 @@ import model.Order
|
||||
/**
|
||||
* Provides a default implementation for [[StoreApi]].
|
||||
*/
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
class StoreApiImpl extends StoreApi {
|
||||
/**
|
||||
* @inheritdoc
|
||||
|
||||
@@ -2,7 +2,7 @@ package api
|
||||
|
||||
import model.User
|
||||
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
trait UserApi {
|
||||
/**
|
||||
* Create user
|
||||
|
||||
@@ -6,7 +6,7 @@ import play.api.libs.json._
|
||||
import play.api.mvc._
|
||||
import model.User
|
||||
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
@Singleton
|
||||
class UserApiController @Inject()(cc: ControllerComponents, api: UserApi) extends AbstractController(cc) {
|
||||
/**
|
||||
|
||||
@@ -5,7 +5,7 @@ import model.User
|
||||
/**
|
||||
* Provides a default implementation for [[UserApi]].
|
||||
*/
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
class UserApiImpl extends UserApi {
|
||||
/**
|
||||
* @inheritdoc
|
||||
|
||||
@@ -5,7 +5,7 @@ import play.api.libs.json._
|
||||
/**
|
||||
* Describes the result of uploading an image resource
|
||||
*/
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
case class ApiResponse(
|
||||
code: Option[Int],
|
||||
`type`: Option[String],
|
||||
|
||||
@@ -5,7 +5,7 @@ import play.api.libs.json._
|
||||
/**
|
||||
* A category for a pet
|
||||
*/
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
case class Category(
|
||||
id: Option[Long],
|
||||
name: Option[String]
|
||||
|
||||
@@ -7,7 +7,7 @@ import java.time.OffsetDateTime
|
||||
* An order for a pets from the pet store
|
||||
* @param status Order Status
|
||||
*/
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
case class Order(
|
||||
id: Option[Long],
|
||||
petId: Option[Long],
|
||||
|
||||
@@ -6,7 +6,7 @@ import play.api.libs.json._
|
||||
* A pet for sale in the pet store
|
||||
* @param status pet status in the store
|
||||
*/
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
case class Pet(
|
||||
id: Option[Long],
|
||||
category: Option[Category],
|
||||
|
||||
@@ -5,7 +5,7 @@ import play.api.libs.json._
|
||||
/**
|
||||
* A tag for a pet
|
||||
*/
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
case class Tag(
|
||||
id: Option[Long],
|
||||
name: Option[String]
|
||||
|
||||
@@ -6,7 +6,7 @@ import play.api.libs.json._
|
||||
* A User who is purchasing from the pet store
|
||||
* @param userStatus User Status
|
||||
*/
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
case class User(
|
||||
id: Option[Long],
|
||||
username: Option[String],
|
||||
|
||||
@@ -4,7 +4,7 @@ import api._
|
||||
import play.api.inject.{Binding, Module => PlayModule}
|
||||
import play.api.{Configuration, Environment}
|
||||
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-25T23:20:59.671788+07:00[Asia/Bangkok]")
|
||||
@javax.annotation.Generated(value = Array("org.openapitools.codegen.languages.ScalaPlayFrameworkServerCodegen"), date = "2020-02-29T14:21:53.710+07:00[Asia/Bangkok]")
|
||||
class Module extends PlayModule {
|
||||
override def bindings(environment: Environment, configuration: Configuration): Seq[Binding[_]] = Seq(
|
||||
bind[PetApi].to[PetApiImpl],
|
||||
|
||||
Reference in New Issue
Block a user