forked from loafle/openapi-generator-original
* resolved ambiguous beanValidation Email annotation imports; fix #13379 * [Java][Spring] fix email import --------- Co-authored-by: Oleh Kurpiak <oleh.kurpiak@gmail.com>
This commit is contained in:
parent
6e649af9a7
commit
3ea346e1bb
@ -11,8 +11,10 @@ minLength not set, maxLength set
|
|||||||
}}{{#minItems}}{{^maxItems}}@Size(min = {{minItems}}) {{/maxItems}}{{/minItems}}{{!
|
}}{{#minItems}}{{^maxItems}}@Size(min = {{minItems}}) {{/maxItems}}{{/minItems}}{{!
|
||||||
@Size: minItems not set && maxItems set
|
@Size: minItems not set && maxItems set
|
||||||
}}{{^minItems}}{{#maxItems}}@Size(max = {{.}}) {{/maxItems}}{{/minItems}}{{!
|
}}{{^minItems}}{{#maxItems}}@Size(max = {{.}}) {{/maxItems}}{{/minItems}}{{!
|
||||||
@Email: useBeanValidation set && isEmail set
|
@Email: useBeanValidation
|
||||||
}}{{#useBeanValidation}}{{#isEmail}}@Email{{/isEmail}}{{/useBeanValidation}}{{!
|
}}{{#isEmail}}{{#useBeanValidation}}@{{javaxPackage}}.validation.constraints.Email{{/useBeanValidation}}{{!
|
||||||
|
@Email: performBeanValidation exclusive
|
||||||
|
}}{{^useBeanValidation}}{{#performBeanValidation}}@org.hibernate.validator.constraints.Email{{/performBeanValidation}}{{/useBeanValidation}}{{/isEmail}}{{!
|
||||||
check for integer or long / all others=decimal type with @Decimal*
|
check for integer or long / all others=decimal type with @Decimal*
|
||||||
isInteger set
|
isInteger set
|
||||||
}}{{#isInteger}}{{#minimum}}@Min({{.}}) {{/minimum}}{{#maximum}}@Max({{.}}) {{/maximum}}{{/isInteger}}{{!
|
}}{{#isInteger}}{{#minimum}}@Min({{.}}) {{/minimum}}{{#maximum}}@Max({{.}}) {{/maximum}}{{/isInteger}}{{!
|
||||||
|
@ -821,16 +821,25 @@ public class SpringCodegenTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void useBeanValidationTruePerformBeanValidationFalseJava8TrueForFormatEmail() throws IOException {
|
public void useBeanValidationTruePerformBeanValidationFalseJava8TrueForFormatEmail() throws IOException {
|
||||||
beanValidationForFormatEmail(true, false, true, "@Email", "@org.hibernate.validator.constraints.Email");
|
beanValidationForFormatEmail(true, false, true, "@javax.validation.constraints.Email", "@org.hibernate.validator.constraints.Email");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void useBeanValidationTruePerformBeanValidationTrueJava8FalseForFormatEmail() throws IOException {
|
public void useBeanValidationTruePerformBeanValidationTrueJava8FalseForFormatEmail() throws IOException {
|
||||||
beanValidationForFormatEmail(true, true, false, "@Email", "@org.hibernate.validator.constraints.Email");
|
beanValidationForFormatEmail(true, true, false, "@javax.validation.constraints.Email", "@org.hibernate.validator.constraints.Email");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void useBeanValidationTruePerformBeanValidationFalseJava8TrueJakartaeeTrueForFormatEmail() throws IOException {
|
||||||
|
beanValidationForFormatEmail(true, false, true, true,"@jakarta.validation.constraints.Email", "@javax.validation.constraints.Email");
|
||||||
}
|
}
|
||||||
|
|
||||||
// note: java8 option/mustache tag has been removed and default to true
|
// note: java8 option/mustache tag has been removed and default to true
|
||||||
private void beanValidationForFormatEmail(boolean useBeanValidation, boolean performBeanValidation, boolean java8, String contains, String notContains) throws IOException {
|
private void beanValidationForFormatEmail(boolean useBeanValidation, boolean performBeanValidation, boolean java8, String contains, String notContains) throws IOException {
|
||||||
|
this.beanValidationForFormatEmail(useBeanValidation, performBeanValidation, java8, false, contains, notContains);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void beanValidationForFormatEmail(boolean useBeanValidation, boolean performBeanValidation, boolean java8, boolean useJakarta, String contains, String notContains) throws IOException {
|
||||||
File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
|
File output = Files.createTempDirectory("test").toFile().getCanonicalFile();
|
||||||
output.deleteOnExit();
|
output.deleteOnExit();
|
||||||
String outputPath = output.getAbsolutePath().replace('\\', '/');
|
String outputPath = output.getAbsolutePath().replace('\\', '/');
|
||||||
@ -842,6 +851,7 @@ public class SpringCodegenTest {
|
|||||||
codegen.setOutputDir(output.getAbsolutePath());
|
codegen.setOutputDir(output.getAbsolutePath());
|
||||||
codegen.setUseBeanValidation(useBeanValidation);
|
codegen.setUseBeanValidation(useBeanValidation);
|
||||||
codegen.setPerformBeanValidation(performBeanValidation);
|
codegen.setPerformBeanValidation(performBeanValidation);
|
||||||
|
codegen.setUseSpringBoot3(useJakarta);
|
||||||
|
|
||||||
ClientOptInput input = new ClientOptInput();
|
ClientOptInput input = new ClientOptInput();
|
||||||
input.openAPI(openAPI);
|
input.openAPI(openAPI);
|
||||||
@ -855,15 +865,20 @@ public class SpringCodegenTest {
|
|||||||
generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "false");
|
generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "false");
|
||||||
generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false");
|
generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "false");
|
||||||
|
|
||||||
List<File> files = generator.opts(input).generate();
|
Map<String, File> files = generator.opts(input).generate().stream()
|
||||||
|
.collect(Collectors.toMap(File::getName, Function.identity()));
|
||||||
|
|
||||||
|
JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("PersonWithEmail.java"))
|
||||||
|
.printFileContent();
|
||||||
|
if (useBeanValidation) javaFileAssert.hasImports((useJakarta? "jakarta" : "javax") + ".validation.constraints");
|
||||||
|
if (performBeanValidation) javaFileAssert.hasImports("org.hibernate.validator.constraints");
|
||||||
assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/PersonWithEmail.java"), contains);
|
assertFileContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/PersonWithEmail.java"), contains);
|
||||||
assertFileNotContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/PersonWithEmail.java"), notContains);
|
assertFileNotContains(Paths.get(outputPath + "/src/main/java/org/openapitools/model/PersonWithEmail.java"), notContains);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void useBeanValidationTruePerformBeanValidationTrueJava8TrueForFormatEmail() throws IOException {
|
public void useBeanValidationTruePerformBeanValidationTrueJava8TrueForFormatEmail() throws IOException {
|
||||||
beanValidationForFormatEmail(true, true, true, "@Email", "@org.hibernate.validator.constraints.Email");
|
beanValidationForFormatEmail(true, true, true, "@javax.validation.constraints.Email", "@org.hibernate.validator.constraints.Email");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -1934,7 +1949,7 @@ public class SpringCodegenTest {
|
|||||||
JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("Person.java"))
|
JavaFileAssert javaFileAssert = JavaFileAssert.assertThat(files.get("Person.java"))
|
||||||
.printFileContent();
|
.printFileContent();
|
||||||
javaFileAssert.assertMethod("getName").assertMethodAnnotations()
|
javaFileAssert.assertMethod("getName").assertMethodAnnotations()
|
||||||
.containsWithName("NotNull").containsWithName("Size").containsWithName("Email");
|
.containsWithName("NotNull").containsWithName("Size").containsWithName("javax.validation.constraints.Email");
|
||||||
javaFileAssert
|
javaFileAssert
|
||||||
.hasNoImports("javax.validation.constraints.NotNull")
|
.hasNoImports("javax.validation.constraints.NotNull")
|
||||||
.hasImports("javax.validation.constraints");
|
.hasImports("javax.validation.constraints");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user