Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JAVA] [jersey2] [jersey3] [okhttp] [native] Fix models-only build broken when schema has anyOf or oneOf #18856

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
import org.openapitools.codegen.model.OperationMap;
import org.openapitools.codegen.model.OperationsMap;
import org.openapitools.codegen.templating.mustache.CaseFormatLambda;
import org.openapitools.codegen.utils.ModelUtils;
import org.openapitools.codegen.utils.ProcessUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -595,9 +596,6 @@ public void processOpts() {
supportingFiles.add(new SupportingFile("ProgressRequestBody.mustache", invokerFolder, "ProgressRequestBody.java"));
supportingFiles.add(new SupportingFile("ProgressResponseBody.mustache", invokerFolder, "ProgressResponseBody.java"));
supportingFiles.add(new SupportingFile("GzipRequestInterceptor.mustache", invokerFolder, "GzipRequestInterceptor.java"));
if (OKHTTP_GSON.equals(getLibrary())) {
supportingFiles.add(new SupportingFile("AbstractOpenApiSchema.mustache", modelsFolder, "AbstractOpenApiSchema.java"));
}

// NOTE: below moved to postProcessOperationsWithModels
//supportingFiles.add(new SupportingFile("auth/OAuthOkHttpClient.mustache", authFolder, "OAuthOkHttpClient.java"));
Expand Down Expand Up @@ -626,7 +624,6 @@ public void processOpts() {
if (ProcessUtils.hasHttpSignatureMethods(openAPI)) {
supportingFiles.add(new SupportingFile("auth/HttpSignatureAuth.mustache", authFolder, "HttpSignatureAuth.java"));
}
supportingFiles.add(new SupportingFile("AbstractOpenApiSchema.mustache", modelsFolder, "AbstractOpenApiSchema.java"));
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);

// Composed schemas can have the 'additionalProperties' keyword, as specified in JSON schema.
Expand All @@ -643,7 +640,6 @@ public void processOpts() {
if (ProcessUtils.hasHttpSignatureMethods(openAPI)) {
supportingFiles.add(new SupportingFile("auth/HttpSignatureAuth.mustache", authFolder, "HttpSignatureAuth.java"));
}
supportingFiles.add(new SupportingFile("AbstractOpenApiSchema.mustache", modelsFolder, "AbstractOpenApiSchema.java"));
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);

// Composed schemas can have the 'additionalProperties' keyword, as specified in JSON schema.
Expand All @@ -656,7 +652,6 @@ public void processOpts() {
} else if (NATIVE.equals(getLibrary())) {
supportingFiles.add(new SupportingFile("ApiResponse.mustache", invokerFolder, "ApiResponse.java"));
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
supportingFiles.add(new SupportingFile("AbstractOpenApiSchema.mustache", modelsFolder, "AbstractOpenApiSchema.java"));
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);
} else if (RESTEASY.equals(getLibrary())) {
supportingFiles.add(new SupportingFile("JSON.mustache", invokerFolder, "JSON.java"));
Expand All @@ -678,7 +673,6 @@ public void processOpts() {
supportingFiles.remove(new SupportingFile("manifest.mustache", projectFolder, "AndroidManifest.xml"));
} else if (GOOGLE_API_CLIENT.equals(getLibrary())) {
forceSerializationLibrary(SERIALIZATION_LIBRARY_JACKSON);

} else if (REST_ASSURED.equals(getLibrary())) {
if (getSerializationLibrary() == null) {
LOGGER.info("No serializationLibrary configured, using '{}' as fallback", SERIALIZATION_LIBRARY_GSON);
Expand Down Expand Up @@ -802,6 +796,13 @@ public void processOpts() {
supportingFiles.add(new SupportingFile("auth/ApiErrorDecoder.mustache", authFolder, "ApiErrorDecoder.java"));
}
}

if (additionalProperties.getOrDefault(CodegenConstants.GENERATE_MODELS, false).equals(true)
&& List.of(JERSEY2, JERSEY3, NATIVE, OKHTTP_GSON).contains(getLibrary())
&& (ProcessUtils.hasAnyOfSchemas(openAPI) || ProcessUtils.hasOneOfSchemas(openAPI))
) {
supportingFiles.add(new SupportingFile("AbstractOpenApiSchema.mustache", modelsFolder, "AbstractOpenApiSchema.java"));
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,14 @@
return false;
}

public static boolean hasAnyOfSchemas(OpenAPI openAPI) {
return openAPI.getComponents().getSchemas().values().stream().anyMatch(ModelUtils::hasAnyOf);

Check failure on line 103 in modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ProcessUtils.java

View workflow job for this annotation

GitHub Actions / JUnit Test results

org.openapitools.codegen.java.JavaClientCodegenTest ► testGeneratePing

Failed test found in: modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml Error: java.lang.NullPointerException
Raw output
java.lang.NullPointerException
	at org.openapitools.codegen.utils.ProcessUtils.hasAnyOfSchemas(ProcessUtils.java:103)
	at org.openapitools.codegen.languages.JavaClientCodegen.processOpts(JavaClientCodegen.java:802)
	at org.openapitools.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:265)
	at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1289)
	at org.openapitools.codegen.java.JavaClientCodegenTest.testGeneratePing(JavaClientCodegenTest.java:407)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:739)
	at org.testng.TestRunner.run(TestRunner.java:614)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
	at org.testng.TestNG.runSuites(TestNG.java:1112)
	at org.testng.TestNG.run(TestNG.java:1079)

Check failure on line 103 in modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ProcessUtils.java

View workflow job for this annotation

GitHub Actions / JUnit Test results

org.openapitools.codegen.java.JavaClientCodegenTest ► testJdkHttpClient

Failed test found in: modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml Error: java.lang.NullPointerException
Raw output
java.lang.NullPointerException
	at org.openapitools.codegen.utils.ProcessUtils.hasAnyOfSchemas(ProcessUtils.java:103)
	at org.openapitools.codegen.languages.JavaClientCodegen.processOpts(JavaClientCodegen.java:802)
	at org.openapitools.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:265)
	at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1289)
	at org.openapitools.codegen.java.JavaClientCodegenTest.testJdkHttpClient(JavaClientCodegenTest.java:525)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:739)
	at org.testng.TestRunner.run(TestRunner.java:614)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
	at org.testng.TestNG.runSuites(TestNG.java:1112)
	at org.testng.TestNG.run(TestNG.java:1079)

Check failure on line 103 in modules/openapi-generator/src/main/java/org/openapitools/codegen/utils/ProcessUtils.java

View workflow job for this annotation

GitHub Actions / JUnit Test results

org.openapitools.codegen.java.JavaClientCodegenTest ► testJdkHttpClientWithUseBeanValidationEnabled

Failed test found in: modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml Error: java.lang.NullPointerException
Raw output
java.lang.NullPointerException
	at org.openapitools.codegen.utils.ProcessUtils.hasAnyOfSchemas(ProcessUtils.java:103)
	at org.openapitools.codegen.languages.JavaClientCodegen.processOpts(JavaClientCodegen.java:802)
	at org.openapitools.codegen.DefaultGenerator.configureGeneratorProperties(DefaultGenerator.java:265)
	at org.openapitools.codegen.DefaultGenerator.generate(DefaultGenerator.java:1289)
	at org.openapitools.codegen.java.JavaClientCodegenTest.testJdkHttpClientWithUseBeanValidationEnabled(JavaClientCodegenTest.java:553)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:739)
	at org.testng.TestRunner.run(TestRunner.java:614)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
	at org.testng.TestNG.runSuites(TestNG.java:1112)
	at org.testng.TestNG.run(TestNG.java:1079)
}

public static boolean hasOneOfSchemas(OpenAPI openAPI) {
return openAPI.getComponents().getSchemas().values().stream().anyMatch(ModelUtils::hasOneOf);
}

/**
* Returns a list of OAS Codegen security objects
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -468,7 +468,7 @@
validateJavaSourceFiles(files);
assertThat(output.resolve("src/main/java/zz/yyyy/model/xxxx/SomeObj.java")).content()
.contains("public class SomeObj", "Boolean isActive()");
assertThat(files).hasSize(43).map(File::toPath).contains(

Check failure on line 471 in modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

View workflow job for this annotation

GitHub Actions / JUnit Test results

org.openapitools.codegen.java.JavaClientCodegenTest ► testGeneratePingSomeObj

Failed test found in: modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml Error: java.lang.AssertionError:
Raw output
java.lang.AssertionError: 

Expected size: 43 but was: 42 in:
[/tmp/test6641494990807249001/src/main/java/zz/yyyy/model/xxxx/SomeObj.java,
    /tmp/test6641494990807249001/src/test/java/zz/yyyy/model/xxxx/SomeObjTest.java,
    /tmp/test6641494990807249001/docs/SomeObj.md,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/api/xxxx/PingApi.java,
    /tmp/test6641494990807249001/src/test/java/zz/yyyy/api/xxxx/PingApiTest.java,
    /tmp/test6641494990807249001/docs/PingApi.md,
    /tmp/test6641494990807249001/pom.xml,
    /tmp/test6641494990807249001/README.md,
    /tmp/test6641494990807249001/build.gradle,
    /tmp/test6641494990807249001/build.sbt,
    /tmp/test6641494990807249001/settings.gradle,
    /tmp/test6641494990807249001/gradle.properties,
    /tmp/test6641494990807249001/src/main/AndroidManifest.xml,
    /tmp/test6641494990807249001/.travis.yml,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/ApiClient.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/ServerConfiguration.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/ServerVariable.java,
    /tmp/test6641494990807249001/.github/workflows/maven.yml,
    /tmp/test6641494990807249001/api/openapi.yaml,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/StringUtil.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/auth/HttpBasicAuth.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/auth/HttpBearerAuth.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/auth/ApiKeyAuth.java,
    /tmp/test6641494990807249001/gradlew,
    /tmp/test6641494990807249001/gradlew.bat,
    /tmp/test6641494990807249001/gradle/wrapper/gradle-wrapper.properties,
    /tmp/test6641494990807249001/gradle/wrapper/gradle-wrapper.jar,
    /tmp/test6641494990807249001/git_push.sh,
    /tmp/test6641494990807249001/.gitignore,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/ApiException.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/Configuration.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/Pair.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/auth/Authentication.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/ApiCallback.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/ApiResponse.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/JSON.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/ProgressRequestBody.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/ProgressResponseBody.java,
    /tmp/test6641494990807249001/src/main/java/zz/yyyy/invoker/xxxx/GzipRequestInterceptor.java,
    /tmp/test6641494990807249001/.openapi-generator-ignore,
    /tmp/test6641494990807249001/.openapi-generator/VERSION,
    /tmp/test6641494990807249001/.openapi-generator/FILES]
	at org.openapitools.codegen.java.JavaClientCodegenTest.testGeneratePingSomeObj(JavaClientCodegenTest.java:471)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:739)
	at org.testng.TestRunner.run(TestRunner.java:614)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
	at org.testng.TestNG.runSuites(TestNG.java:1112)
	at org.testng.TestNG.run(TestNG.java:1079)
output.resolve(".gitignore"),
output.resolve(".openapi-generator-ignore"),
output.resolve(".openapi-generator/FILES"),
Expand Down Expand Up @@ -591,7 +591,7 @@

List<File> files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate();

assertThat(files).hasSize(35);

Check failure on line 594 in modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

View workflow job for this annotation

GitHub Actions / JUnit Test results

org.openapitools.codegen.java.JavaClientCodegenTest ► testJdkHttpAsyncClient

Failed test found in: modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml Error: java.lang.AssertionError:
Raw output
java.lang.AssertionError: 

Expected size: 35 but was: 34 in:
[/tmp/test2674761119720436670/src/main/java/org/openapitools/client/model/SomeObj.java,
    /tmp/test2674761119720436670/src/test/java/org/openapitools/client/model/SomeObjTest.java,
    /tmp/test2674761119720436670/docs/SomeObj.md,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/api/PingApi.java,
    /tmp/test2674761119720436670/src/test/java/xyz/abcdef/api/PingApiTest.java,
    /tmp/test2674761119720436670/docs/PingApi.md,
    /tmp/test2674761119720436670/pom.xml,
    /tmp/test2674761119720436670/README.md,
    /tmp/test2674761119720436670/build.gradle,
    /tmp/test2674761119720436670/build.sbt,
    /tmp/test2674761119720436670/settings.gradle,
    /tmp/test2674761119720436670/gradle.properties,
    /tmp/test2674761119720436670/src/main/AndroidManifest.xml,
    /tmp/test2674761119720436670/.travis.yml,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/ApiClient.java,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/ServerConfiguration.java,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/ServerVariable.java,
    /tmp/test2674761119720436670/.github/workflows/maven.yml,
    /tmp/test2674761119720436670/api/openapi.yaml,
    /tmp/test2674761119720436670/gradlew,
    /tmp/test2674761119720436670/gradlew.bat,
    /tmp/test2674761119720436670/gradle/wrapper/gradle-wrapper.properties,
    /tmp/test2674761119720436670/gradle/wrapper/gradle-wrapper.jar,
    /tmp/test2674761119720436670/git_push.sh,
    /tmp/test2674761119720436670/.gitignore,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/ApiException.java,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/Configuration.java,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/Pair.java,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/ApiResponse.java,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/JSON.java,
    /tmp/test2674761119720436670/src/main/java/xyz/abcdef/RFC3339DateFormat.java,
    /tmp/test2674761119720436670/.openapi-generator-ignore,
    /tmp/test2674761119720436670/.openapi-generator/VERSION,
    /tmp/test2674761119720436670/.openapi-generator/FILES]
	at org.openapitools.codegen.java.JavaClientCodegenTest.testJdkHttpAsyncClient(JavaClientCodegenTest.java:594)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:739)
	at org.testng.TestRunner.run(TestRunner.java:614)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
	at org.testng.TestNG.runSuites(TestNG.java:1112)
	at org.testng.TestNG.run(TestNG.java:1079)

validateJavaSourceFiles(files);
assertThat(output.resolve("src/main/java/xyz/abcdef/api/PingApi.java")).content().contains(
Expand Down Expand Up @@ -1156,7 +1156,7 @@
.content().contains("class RealCommand {");
assertThat(output.resolve("src/main/java/org/openapitools/client/model/Command.java"))
.content().contains("class Command {");
assertThat(files).hasSize(49).contains(

Check failure on line 1159 in modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

View workflow job for this annotation

GitHub Actions / JUnit Test results

org.openapitools.codegen.java.JavaClientCodegenTest ► testAllowModelWithNoProperties

Failed test found in: modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml Error: java.lang.AssertionError:
Raw output
java.lang.AssertionError: 

Expected size: 49 but was: 48 in:
[/tmp/test16031048059483852058/src/main/java/org/openapitools/client/model/ApiError.java,
    /tmp/test16031048059483852058/src/test/java/org/openapitools/client/model/ApiErrorTest.java,
    /tmp/test16031048059483852058/docs/ApiError.md,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/model/Command.java,
    /tmp/test16031048059483852058/src/test/java/org/openapitools/client/model/CommandTest.java,
    /tmp/test16031048059483852058/docs/Command.md,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/model/RealCommand.java,
    /tmp/test16031048059483852058/src/test/java/org/openapitools/client/model/RealCommandTest.java,
    /tmp/test16031048059483852058/docs/RealCommand.md,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/api/DefaultApi.java,
    /tmp/test16031048059483852058/src/test/java/org/openapitools/client/api/DefaultApiTest.java,
    /tmp/test16031048059483852058/docs/DefaultApi.md,
    /tmp/test16031048059483852058/pom.xml,
    /tmp/test16031048059483852058/README.md,
    /tmp/test16031048059483852058/build.gradle,
    /tmp/test16031048059483852058/build.sbt,
    /tmp/test16031048059483852058/settings.gradle,
    /tmp/test16031048059483852058/gradle.properties,
    /tmp/test16031048059483852058/src/main/AndroidManifest.xml,
    /tmp/test16031048059483852058/.travis.yml,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/ApiClient.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/ServerConfiguration.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/ServerVariable.java,
    /tmp/test16031048059483852058/.github/workflows/maven.yml,
    /tmp/test16031048059483852058/api/openapi.yaml,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/StringUtil.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/auth/HttpBasicAuth.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/auth/HttpBearerAuth.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/auth/ApiKeyAuth.java,
    /tmp/test16031048059483852058/gradlew,
    /tmp/test16031048059483852058/gradlew.bat,
    /tmp/test16031048059483852058/gradle/wrapper/gradle-wrapper.properties,
    /tmp/test16031048059483852058/gradle/wrapper/gradle-wrapper.jar,
    /tmp/test16031048059483852058/git_push.sh,
    /tmp/test16031048059483852058/.gitignore,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/ApiException.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/Configuration.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/Pair.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/auth/Authentication.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/ApiCallback.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/ApiResponse.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/JSON.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/ProgressRequestBody.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/ProgressResponseBody.java,
    /tmp/test16031048059483852058/src/main/java/org/openapitools/client/GzipRequestInterceptor.java,
    /tmp/test16031048059483852058/.openapi-generator-ignore,
    /tmp/test16031048059483852058/.openapi-generator/VERSION,
    /tmp/test16031048059483852058/.openapi-generator/FILES]
	at org.openapitools.codegen.java.JavaClientCodegenTest.testAllowModelWithNoProperties(JavaClientCodegenTest.java:1159)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:739)
	at org.testng.TestRunner.run(TestRunner.java:614)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
	at org.testng.TestNG.runSuites(TestNG.java:1112)
	at org.testng.TestNG.run(TestNG.java:1079)
output.resolve("src/main/java/org/openapitools/client/model/RealCommand.java").toFile(),
output.resolve("src/main/java/org/openapitools/client/model/Command.java").toFile()
);
Expand Down Expand Up @@ -1366,7 +1366,7 @@
List<File> files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate();

validateJavaSourceFiles(files);
assertThat(files).hasSize(35);

Check failure on line 1369 in modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

View workflow job for this annotation

GitHub Actions / JUnit Test results

org.openapitools.codegen.java.JavaClientCodegenTest ► testNativeClientWhiteSpacePathParamEncoding

Failed test found in: modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml Error: java.lang.AssertionError:
Raw output
java.lang.AssertionError: 

Expected size: 35 but was: 34 in:
[/tmp/test4251239174351224595/src/main/java/org/openapitools/client/model/SomeReturnValue.java,
    /tmp/test4251239174351224595/src/test/java/org/openapitools/client/model/SomeReturnValueTest.java,
    /tmp/test4251239174351224595/docs/SomeReturnValue.md,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/api/DefaultApi.java,
    /tmp/test4251239174351224595/src/test/java/xyz/abcdef/api/DefaultApiTest.java,
    /tmp/test4251239174351224595/docs/DefaultApi.md,
    /tmp/test4251239174351224595/pom.xml,
    /tmp/test4251239174351224595/README.md,
    /tmp/test4251239174351224595/build.gradle,
    /tmp/test4251239174351224595/build.sbt,
    /tmp/test4251239174351224595/settings.gradle,
    /tmp/test4251239174351224595/gradle.properties,
    /tmp/test4251239174351224595/src/main/AndroidManifest.xml,
    /tmp/test4251239174351224595/.travis.yml,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/ApiClient.java,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/ServerConfiguration.java,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/ServerVariable.java,
    /tmp/test4251239174351224595/.github/workflows/maven.yml,
    /tmp/test4251239174351224595/api/openapi.yaml,
    /tmp/test4251239174351224595/gradlew,
    /tmp/test4251239174351224595/gradlew.bat,
    /tmp/test4251239174351224595/gradle/wrapper/gradle-wrapper.properties,
    /tmp/test4251239174351224595/gradle/wrapper/gradle-wrapper.jar,
    /tmp/test4251239174351224595/git_push.sh,
    /tmp/test4251239174351224595/.gitignore,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/ApiException.java,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/Configuration.java,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/Pair.java,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/ApiResponse.java,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/JSON.java,
    /tmp/test4251239174351224595/src/main/java/xyz/abcdef/RFC3339DateFormat.java,
    /tmp/test4251239174351224595/.openapi-generator-ignore,
    /tmp/test4251239174351224595/.openapi-generator/VERSION,
    /tmp/test4251239174351224595/.openapi-generator/FILES]
	at org.openapitools.codegen.java.JavaClientCodegenTest.testNativeClientWhiteSpacePathParamEncoding(JavaClientCodegenTest.java:1369)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:739)
	at org.testng.TestRunner.run(TestRunner.java:614)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
	at org.testng.TestNG.runSuites(TestNG.java:1112)
	at org.testng.TestNG.run(TestNG.java:1079)
TestUtils.assertFileContains(output.resolve("src/main/java/xyz/abcdef/ApiClient.java"),
"public static String urlEncode(String s) { return URLEncoder.encode(s,"
+ " UTF_8).replaceAll(\"\\\\+\", \"%20\"); }"
Expand All @@ -1388,7 +1388,7 @@
List<File> files = new DefaultGenerator().opts(configurator.toClientOptInput()).generate();

validateJavaSourceFiles(files);
assertThat(files).hasSize(38);

Check failure on line 1391 in modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

View workflow job for this annotation

GitHub Actions / JUnit Test results

org.openapitools.codegen.java.JavaClientCodegenTest ► testNativeClientExplodedQueryParamObject

Failed test found in: modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml Error: java.lang.AssertionError:
Raw output
java.lang.AssertionError: 

Expected size: 38 but was: 37 in:
[/tmp/test5197982705076811097/src/main/java/org/openapitools/client/model/GetSomeValueQueryObjectParameter.java,
    /tmp/test5197982705076811097/src/test/java/org/openapitools/client/model/GetSomeValueQueryObjectParameterTest.java,
    /tmp/test5197982705076811097/docs/GetSomeValueQueryObjectParameter.md,
    /tmp/test5197982705076811097/src/main/java/org/openapitools/client/model/SomeReturnValue.java,
    /tmp/test5197982705076811097/src/test/java/org/openapitools/client/model/SomeReturnValueTest.java,
    /tmp/test5197982705076811097/docs/SomeReturnValue.md,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/api/DefaultApi.java,
    /tmp/test5197982705076811097/src/test/java/xyz/abcdef/api/DefaultApiTest.java,
    /tmp/test5197982705076811097/docs/DefaultApi.md,
    /tmp/test5197982705076811097/pom.xml,
    /tmp/test5197982705076811097/README.md,
    /tmp/test5197982705076811097/build.gradle,
    /tmp/test5197982705076811097/build.sbt,
    /tmp/test5197982705076811097/settings.gradle,
    /tmp/test5197982705076811097/gradle.properties,
    /tmp/test5197982705076811097/src/main/AndroidManifest.xml,
    /tmp/test5197982705076811097/.travis.yml,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/ApiClient.java,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/ServerConfiguration.java,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/ServerVariable.java,
    /tmp/test5197982705076811097/.github/workflows/maven.yml,
    /tmp/test5197982705076811097/api/openapi.yaml,
    /tmp/test5197982705076811097/gradlew,
    /tmp/test5197982705076811097/gradlew.bat,
    /tmp/test5197982705076811097/gradle/wrapper/gradle-wrapper.properties,
    /tmp/test5197982705076811097/gradle/wrapper/gradle-wrapper.jar,
    /tmp/test5197982705076811097/git_push.sh,
    /tmp/test5197982705076811097/.gitignore,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/ApiException.java,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/Configuration.java,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/Pair.java,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/ApiResponse.java,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/JSON.java,
    /tmp/test5197982705076811097/src/main/java/xyz/abcdef/RFC3339DateFormat.java,
    /tmp/test5197982705076811097/.openapi-generator-ignore,
    /tmp/test5197982705076811097/.openapi-generator/VERSION,
    /tmp/test5197982705076811097/.openapi-generator/FILES]
	at org.openapitools.codegen.java.JavaClientCodegenTest.testNativeClientExplodedQueryParamObject(JavaClientCodegenTest.java:1391)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:739)
	at org.testng.TestRunner.run(TestRunner.java:614)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
	at org.testng.TestNG.runSuites(TestNG.java:1112)
	at org.testng.TestNG.run(TestNG.java:1079)
assertThat(output.resolve("src/main/java/xyz/abcdef/api/DefaultApi.java")).content()
.contains(
"localVarQueryParams.addAll(ApiClient.parameterToPairs(\"since\", queryObject.getSince()));",
Expand Down Expand Up @@ -2667,6 +2667,48 @@
);
}

@DataProvider
public static Object[][] librariesWhoseModelsExtendAbstractOpenApiSchema() {
return new Object[][]{{"okhttp-gson"}, {"jersey2"}, {"jersey3"}, {"native"}};
}

/**
* Regression test for <a href="https://github.com/OpenAPITools/openapi-generator/issues/18829">#18829</a>
*/
@Test(dataProvider = "librariesWhoseModelsExtendAbstractOpenApiSchema")
void doesIncludeAbstractOpenApiSchema_whenOnlyModelsAreGenerated(String library) {
final CodegenConfigurator configurator = new CodegenConfigurator()
.setGeneratorName("java")
.setLibrary(library)
.setInputSpec("src/test/resources/3_1/java/petstore.yaml");

var generator = new DefaultGenerator(true);
generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "true");
var files = generator.opts(configurator.toClientOptInput()).generate();

assertThat(files).extracting(File::getName).contains("AbstractOpenApiSchema.java");

Check failure on line 2689 in modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java

View workflow job for this annotation

GitHub Actions / JUnit Test results

org.openapitools.codegen.java.JavaClientCodegenTest ► doesIncludeAbstractOpenApiSchema_whenOnlyModelsAreGenerated(java.lang.String)[0]

Failed test found in: modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml modules/openapi-generator/target/surefire-reports/TEST-org.openapitools.codegen.java.JavaClientCodegenTest.xml Error: java.lang.AssertionError:
Raw output
java.lang.AssertionError: 

Expecting ArrayList:
  ["AllOfSimpleModel.java",
    "AllOfSimpleModelTest.java",
    "AllOfSimpleModel.md",
    "Animal.java",
    "AnimalTest.java",
    "Animal.md",
    "AnyTypeTest.java",
    "AnyTypeTestTest.java",
    "AnyTypeTest.md",
    "ArrayOfSameRef.java",
    "ArrayOfSameRefTest.java",
    "ArrayOfSameRef.md",
    "Cat.java",
    "CatTest.java",
    "Cat.md",
    "Category.java",
    "CategoryTest.java",
    "Category.md",
    "CircularReference1.java",
    "CircularReference1Test.java",
    "CircularReference1.md",
    "CircularReference2.java",
    "CircularReference2Test.java",
    "CircularReference2.md",
    "CircularReference3.java",
    "CircularReference3Test.java",
    "CircularReference3.md",
    "CodesEnum.java",
    "CodesEnumTest.java",
    "CodesEnum.md",
    "Dog.java",
    "DogTest.java",
    "Dog.md",
    "ModelApiResponse.java",
    "ModelApiResponseTest.java",
    "ModelApiResponse.md",
    "OneOfStringOrInt.java",
    "OneOfStringOrIntTest.java",
    "OneOfStringOrInt.md",
    "Order.java",
    "OrderTest.java",
    "Order.md",
    "Pet.java",
    "PetTest.java",
    "Pet.md",
    "SimpleModelWithArrayProperty.java",
    "SimpleModelWithArrayPropertyTest.java",
    "SimpleModelWithArrayProperty.md",
    "StringOrInt.java",
    "StringOrIntTest.java",
    "StringOrInt.md",
    "Tag.java",
    "TagTest.java",
    "Tag.md",
    "User.java",
    "UserTest.java",
    "User.md"]
to contain:
  ["AbstractOpenApiSchema.java"]
but could not find the following element(s):
  ["AbstractOpenApiSchema.java"]

	at org.openapitools.codegen.java.JavaClientCodegenTest.doesIncludeAbstractOpenApiSchema_whenOnlyModelsAreGenerated(JavaClientCodegenTest.java:2689)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
	at org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:686)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
	at org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
	at org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:992)
	at org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
	at org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
	at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1541)
	at org.testng.TestRunner.privateRun(TestRunner.java:739)
	at org.testng.TestRunner.run(TestRunner.java:614)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
	at org.testng.SuiteRunner.run(SuiteRunner.java:312)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
	at org.testng.TestNG.runSuites(TestNG.java:1112)
	at org.testng.TestNG.run(TestNG.java:1079)
}

/**
* Regression test for <a href="https://github.com/OpenAPITools/openapi-generator/issues/16257">#16257</a>
*/
@Test(dataProvider = "librariesWhoseModelsExtendAbstractOpenApiSchema")
void doesNotIncludeAbstractOpenApiSchema_whenModelsAreNotGenerated(String library) {
final CodegenConfigurator configurator = new CodegenConfigurator()
.setGeneratorName("java")
.setLibrary(library)
.setInputSpec("src/test/resources/3_1/java/petstore.yaml");

var generator = new DefaultGenerator(true);
generator.setGeneratorPropertyDefault(CodegenConstants.MODELS, "false");
generator.setGeneratorPropertyDefault(CodegenConstants.APIS, "true");
generator.setGeneratorPropertyDefault(CodegenConstants.SUPPORTING_FILES, "true");
var files = generator.opts(configurator.toClientOptInput()).generate();

assertThat(files).extracting(File::getName)
.doesNotContain("AbstractOpenApiSchema.java");
}

static private Path newTempFolder() {
try {
var tempDir = Files.createTempDirectory("test");
Expand Down
Loading