mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-12-11 11:52:44 +00:00
Fix java examples (#10257)
* TAP-655 fix examples java * update samples
This commit is contained in:
@@ -1087,7 +1087,12 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
public void setParameterExampleValue(CodegenParameter p) {
|
||||
String example;
|
||||
|
||||
if (p.defaultValue == null) {
|
||||
boolean hasAllowableValues = p.allowableValues != null && !p.allowableValues.isEmpty();
|
||||
if (hasAllowableValues) {
|
||||
//support examples for inline enums
|
||||
final List<Object> values = (List<Object>) p.allowableValues.get("values");
|
||||
example = String.valueOf(values.get(0));
|
||||
} else if (p.defaultValue == null) {
|
||||
example = p.example;
|
||||
} else {
|
||||
example = p.defaultValue;
|
||||
@@ -1133,14 +1138,33 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
|
||||
example = "new File(\"" + escapeText(example) + "\")";
|
||||
} else if ("Date".equals(type)) {
|
||||
example = "new Date()";
|
||||
} else if ("LocalDate".equals(type)) {
|
||||
if (example == null) {
|
||||
example = "LocalDate.now()";
|
||||
} else {
|
||||
example = "LocalDate.parse(\"" + example + "\")";
|
||||
}
|
||||
} else if ("OffsetDateTime".equals(type)) {
|
||||
example = "OffsetDateTime.now()";
|
||||
if (example == null) {
|
||||
example = "OffsetDateTime.now()";
|
||||
} else {
|
||||
example = "OffsetDateTime.parse(\"" + example + "\")";
|
||||
}
|
||||
} else if ("BigDecimal".equals(type)) {
|
||||
example = "new BigDecimal(78)";
|
||||
} else if (p.allowableValues != null && !p.allowableValues.isEmpty()) {
|
||||
Map<String, Object> allowableValues = p.allowableValues;
|
||||
List<Object> values = (List<Object>) allowableValues.get("values");
|
||||
example = type + ".fromValue(\"" + String.valueOf(values.get(0)) + "\")";
|
||||
if (example == null) {
|
||||
example = "new BigDecimal(78)";
|
||||
} else {
|
||||
example = "new BigDecimal(\"" + example + "\")";
|
||||
}
|
||||
} else if ("UUID".equals(type)) {
|
||||
if (example == null) {
|
||||
example = "UUID.randomUUID()";
|
||||
} else {
|
||||
example = "UUID.fromString(\"" + example + "\")";
|
||||
}
|
||||
} else if (hasAllowableValues) {
|
||||
//parameter is enum defined as a schema component
|
||||
example = type + ".fromValue(\"" + example + "\")";
|
||||
} else if (!languageSpecificPrimitives.contains(type)) {
|
||||
// type is a model class, e.g. User
|
||||
example = "new " + type + "()";
|
||||
|
||||
@@ -0,0 +1,157 @@
|
||||
/*
|
||||
* Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech)
|
||||
* Copyright 2018 SmartBear Software
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.openapitools.codegen.java;
|
||||
|
||||
import org.openapitools.codegen.CodegenParameter;
|
||||
import org.openapitools.codegen.CodegenProperty;
|
||||
import org.openapitools.codegen.CodegenType;
|
||||
import org.openapitools.codegen.languages.AbstractJavaCodegen;
|
||||
import org.testng.Assert;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
|
||||
public class AbstractJavaCodegenExampleValuesTest {
|
||||
|
||||
private final AbstractJavaCodegen fakeJavaCodegen = new P_AbstractJavaCodegen();
|
||||
|
||||
@Test
|
||||
void referencedEnumTakeFirstName() {
|
||||
final CodegenParameter p = new CodegenParameter();
|
||||
p.allowableValues = Collections.singletonMap("values", Arrays.asList("first", "second"));
|
||||
p.dataType = "WrappedEnum";
|
||||
|
||||
fakeJavaCodegen.setParameterExampleValue(p);
|
||||
Assert.assertEquals(p.example, "WrappedEnum.fromValue(\"first\")");
|
||||
}
|
||||
|
||||
@Test
|
||||
void inlineEnum() {
|
||||
final CodegenParameter p = new CodegenParameter();
|
||||
p.allowableValues = Collections.singletonMap("values", Arrays.asList("first", "second"));
|
||||
p.isEnum = true;
|
||||
p.dataType = "String";
|
||||
|
||||
fakeJavaCodegen.setParameterExampleValue(p);
|
||||
Assert.assertEquals(p.example, "\"first\"");
|
||||
}
|
||||
|
||||
@Test
|
||||
void inlineEnumArray() {
|
||||
final CodegenParameter p = new CodegenParameter();
|
||||
p.allowableValues = Collections.singletonMap("values", Arrays.asList("first", "second"));
|
||||
p.isEnum = true;
|
||||
p.isArray = true;
|
||||
p.dataType = "List<String>";
|
||||
p.items = new CodegenProperty();
|
||||
|
||||
fakeJavaCodegen.setParameterExampleValue(p);
|
||||
Assert.assertEquals(p.example, "Arrays.asList()");
|
||||
}
|
||||
|
||||
@Test
|
||||
void dateDefault() {
|
||||
final CodegenParameter p = new CodegenParameter();
|
||||
p.isDate = true;
|
||||
p.dataType = "LocalDate";
|
||||
|
||||
fakeJavaCodegen.setParameterExampleValue(p);
|
||||
Assert.assertEquals(p.example, "LocalDate.now()");
|
||||
}
|
||||
|
||||
@Test
|
||||
void dateGivenExample() {
|
||||
final CodegenParameter p = new CodegenParameter();
|
||||
p.isDate = true;
|
||||
p.dataType = "LocalDate";
|
||||
p.example = "2017-03-30";
|
||||
|
||||
fakeJavaCodegen.setParameterExampleValue(p);
|
||||
Assert.assertEquals(p.example, "LocalDate.parse(\"2017-03-30\")");
|
||||
}
|
||||
|
||||
@Test
|
||||
void dateTimeDefault() {
|
||||
final CodegenParameter p = new CodegenParameter();
|
||||
p.isDateTime = true;
|
||||
p.dataType = "OffsetDateTime";
|
||||
|
||||
fakeJavaCodegen.setParameterExampleValue(p);
|
||||
Assert.assertEquals(p.example, "OffsetDateTime.now()");
|
||||
}
|
||||
|
||||
@Test
|
||||
void dateTimeGivenExample() {
|
||||
final CodegenParameter p = new CodegenParameter();
|
||||
p.isDateTime = true;
|
||||
p.dataType = "OffsetDateTime";
|
||||
p.example = "2007-12-03T10:15:30+01:00";
|
||||
|
||||
fakeJavaCodegen.setParameterExampleValue(p);
|
||||
Assert.assertEquals(p.example, "OffsetDateTime.parse(\"2007-12-03T10:15:30+01:00\")");
|
||||
}
|
||||
|
||||
@Test
|
||||
void uuidDefault() {
|
||||
final CodegenParameter p = new CodegenParameter();
|
||||
p.isUuid = true;
|
||||
p.dataType = "UUID";
|
||||
|
||||
fakeJavaCodegen.setParameterExampleValue(p);
|
||||
Assert.assertEquals(p.example, "UUID.randomUUID()");
|
||||
}
|
||||
|
||||
@Test
|
||||
void uuidGivenExample() {
|
||||
final CodegenParameter p = new CodegenParameter();
|
||||
p.isUuid = true;
|
||||
p.dataType = "UUID";
|
||||
p.example = "13b48713-b931-45ea-bd60-b07491245960";
|
||||
|
||||
fakeJavaCodegen.setParameterExampleValue(p);
|
||||
Assert.assertEquals(p.example, "UUID.fromString(\"13b48713-b931-45ea-bd60-b07491245960\")");
|
||||
}
|
||||
|
||||
private static class P_AbstractJavaCodegen extends AbstractJavaCodegen {
|
||||
@Override
|
||||
public CodegenType getTag() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getHelp() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets artifact version.
|
||||
* Only for testing purposes.
|
||||
*
|
||||
* @return version
|
||||
*/
|
||||
public String getArtifactVersion() {
|
||||
return this.artifactVersion;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user