Skip to content

Commit c2c161e

Browse files
authored
format date in codegen (#20516)
1 parent af6be6a commit c2c161e

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJavaCodegen.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import io.swagger.v3.oas.models.parameters.RequestBody;
3232
import io.swagger.v3.oas.models.servers.Server;
3333
import io.swagger.v3.parser.util.SchemaTypeUtil;
34+
import java.text.SimpleDateFormat;
3435
import lombok.Getter;
3536
import lombok.Setter;
3637
import org.apache.commons.io.FilenameUtils;
@@ -71,6 +72,7 @@ public abstract class AbstractJavaCodegen extends DefaultCodegen implements Code
7172

7273
private final Logger LOGGER = LoggerFactory.getLogger(AbstractJavaCodegen.class);
7374
private static final String ARTIFACT_VERSION_DEFAULT_VALUE = "1.0.0";
75+
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd", Locale.ROOT);
7476

7577
public static final String DEFAULT_LIBRARY = "<default>";
7678
public static final String DATE_LIBRARY = "dateLibrary";
@@ -1638,6 +1640,9 @@ public void setParameterExampleValue(CodegenParameter p) {
16381640
@Override
16391641
public String toExampleValue(Schema p) {
16401642
if (p.getExample() != null) {
1643+
if (p.getExample() instanceof Date) {
1644+
return DATE_FORMAT.format(p.getExample());
1645+
}
16411646
return escapeText(p.getExample().toString());
16421647
} else {
16431648
return null;

modules/openapi-generator/src/test/java/org/openapitools/codegen/java/AbstractJavaCodegenTest.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -965,4 +965,11 @@ public void removeAnnotationsTest() {
965965
Assert.assertEquals(codegen.removeAnnotations("List<@Valid Pet>"), "List<Pet>");
966966
}
967967

968+
@Test(description = "test generated example values for string properties")
969+
public void testGeneratedExampleValues() {
970+
final OpenAPI openAPI = FLATTENED_SPEC.get("3_0/spring/date-time-parameter-types-for-testing");
971+
codegen.setOpenAPI(openAPI);
972+
DateSchema dateSchema = (DateSchema) openAPI.getPaths().get("/thingy/{date}").getPost().getParameters().get(0).getSchema();
973+
Assert.assertTrue(codegen.escapeQuotationMark(codegen.toExampleValue(dateSchema)).matches("2021-01-01"));
974+
}
968975
}

0 commit comments

Comments
 (0)