diff --git a/multiapi-engine/pom.xml b/multiapi-engine/pom.xml index f62d1120..a65104c6 100644 --- a/multiapi-engine/pom.xml +++ b/multiapi-engine/pom.xml @@ -4,7 +4,7 @@ com.sngular multiapi-engine - 6.3.1 + 6.3.2 jar diff --git a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/ModelBuilder.java b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/ModelBuilder.java index 54e39ee7..be8614ab 100644 --- a/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/ModelBuilder.java +++ b/multiapi-engine/src/main/java/com/sngular/api/generator/plugin/common/tools/ModelBuilder.java @@ -539,13 +539,17 @@ private static List processAdditionalProperties( final var fieldObjectArrayList = new ArrayList(); final var addPropObj = ApiTool.getAdditionalProperties(schema); - if (TypeConstants.isBoolean(addPropObj.asText())) { - fieldObjectArrayList - .add(SchemaFieldObject - .builder() - .baseName(fieldName) - .dataType(SchemaFieldObjectType.fromTypeList(TypeConstants.MAP, TypeConstants.OBJECT)) - .build()); + if (Objects.nonNull(addPropObj) && addPropObj.isBoolean()) { + if (addPropObj.asBoolean()) { + fieldObjectArrayList + .add(SchemaFieldObject + .builder() + .baseName(fieldName) + .dataType(SchemaFieldObjectType.fromTypeList(TypeConstants.MAP, TypeConstants.OBJECT)) + .build()); + } else { + return fieldObjectArrayList; + } } else if (ApiTool.hasRef(addPropObj)) { final String refSchemaName = MapperUtil.getPojoNameFromRef(addPropObj, specFile, null); fieldObjectArrayList.add(processRef(fieldName, addPropObj, @@ -633,12 +637,20 @@ private static void setFieldType( field.setDataType(SchemaFieldObjectType.fromTypeList(TypeConstants.ARRAY, typeArray)); field.setImportClass(getImportClass(typeArray)); } else if (ApiTool.hasAdditionalProperties(schemaProperty)) { - final String typeObject = getMapTypeObject(schemaProperty, specFile); - field.setDataType(SchemaFieldObjectType.fromTypeList(TypeConstants.MAP, typeObject)); - field.setImportClass(getImportClass(typeObject)); - + final JsonNode apNode = ApiTool.getAdditionalProperties(schemaProperty); + if (Objects.nonNull(apNode) && apNode.isBoolean()) { + if (apNode.asBoolean()) { + final String typeObject = TypeConstants.OBJECT; + field.setDataType(SchemaFieldObjectType.fromTypeList(TypeConstants.MAP, typeObject)); + field.setImportClass(getImportClass(typeObject)); + } // if boolean false -> do not set map type + } else { + final String typeObject = getMapTypeObject(schemaProperty, specFile); + field.setDataType(SchemaFieldObjectType.fromTypeList(TypeConstants.MAP, typeObject)); + field.setImportClass(getImportClass(typeObject)); + } } else if (ApiTool.isObject(schemaProperty)) { - var typeObject = ApiTool.getType(schemaProperty); + String typeObject = ApiTool.getType(schemaProperty); if (ApiTool.hasRef(schemaProperty)) { typeObject = MapperUtil.getPojoNameFromRef(schema, specFile, null); } @@ -649,10 +661,10 @@ private static void setFieldType( private static String getMapTypeObject(final JsonNode schema, final CommonSpecFile specFile) { final String type; - if (ApiTool.isBoolean(ApiTool.getAdditionalProperties(schema))) { + final JsonNode additionalProperties = ApiTool.getAdditionalProperties(schema); + if (Objects.nonNull(additionalProperties) && additionalProperties.isBoolean()) { type = TypeConstants.OBJECT; } else { - final JsonNode additionalProperties = ApiTool.getAdditionalProperties(schema); if (ApiTool.hasRef(additionalProperties)) { type = MapperUtil.getPojoNameFromRef(additionalProperties, specFile, null); } else if (ApiTool.isObject(schema)) { diff --git a/multiapi-engine/src/test/java/com/sngular/api/generator/plugin/openapi/OpenApiGeneratorFixtures.java b/multiapi-engine/src/test/java/com/sngular/api/generator/plugin/openapi/OpenApiGeneratorFixtures.java index d79beb93..189b8356 100644 --- a/multiapi-engine/src/test/java/com/sngular/api/generator/plugin/openapi/OpenApiGeneratorFixtures.java +++ b/multiapi-engine/src/test/java/com/sngular/api/generator/plugin/openapi/OpenApiGeneratorFixtures.java @@ -6,7 +6,11 @@ package com.sngular.api.generator.plugin.openapi; -import static org.assertj.core.api.Assertions.assertThat; +import com.sngular.api.generator.plugin.common.model.TypeConstants.TimeType; +import com.sngular.api.generator.plugin.openapi.parameter.SpecFile; +import com.sngular.api.generator.test.utils.TestUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import java.io.File; import java.net.URISyntaxException; @@ -15,1663 +19,1288 @@ import java.util.List; import java.util.function.Function; -import com.sngular.api.generator.plugin.common.model.TypeConstants.TimeType; -import com.sngular.api.generator.plugin.openapi.parameter.SpecFile; -import com.sngular.api.generator.test.utils.TestUtils; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; +import static org.assertj.core.api.Assertions.assertThat; @Slf4j public final class OpenApiGeneratorFixtures { - static final String GENERATED = "generated"; - - static final String TARGET = "target"; - - static final List TEST_ALL_OF = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testAllOf/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testapi") - .modelPackage("com.sngular.multifileplugin.testapi.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .build() - ); - - static final List TEST_COMPLEX_ANY_OF = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testComplexAnyOf/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testcomplexanyof.api") - .modelPackage("com.sngular.multifileplugin.testcomplexanyof.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .build() - ); - - static final List TEST_ALL_OF_LOMBOK = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testAllOf/api-test.yml") - .apiPackage("com.sngular.multifileplugin.lombok.testapi") - .modelPackage("com.sngular.multifileplugin.lombok.testapi.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_OVER_WRITE_MODEL_TRUE = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testOverWriteModelTrue/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testoverwriteapi") - .modelPackage("com.sngular.multifileplugin.testoverwriteapi.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .build() - ); - - static final List TEST_API_CLIENT_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testApiClientGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testapiclient") - .modelPackage("com.sngular.multifileplugin.testapiclient.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_INLINE_SCHEMA_CREATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testInlineSchemaCreation/api-test.yml") - .apiPackage("com.sngular.multifileplugin.inlineschemacreation") - .modelPackage("com.sngular.multifileplugin.inlineschemacreation.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .build() - ); - - static final List TEST_PARAMETER_WITH_CONTENT_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testApiParametersWithContentGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.parameterwithcontent") - .modelPackage("com.sngular.multifileplugin.parameterwithcontent.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .build() - ); - - static final List TEST_PATH_WITH_SLASH_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testApiPathWithSpecialCharGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.pathwithspecialchar") - .modelPackage("com.sngular.multifileplugin.pathwithspecialchar.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .build() - ); - - static final List TEST_API_REACTIVE_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testApiReactiveGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.reactivegeneration") - .modelPackage("com.sngular.multifileplugin.reactivegeneration.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .isReactive(true) - .build() - ); - - static final List TEST_API_TAGS_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testApiTagsGeneration/api-tags-test.yml") - .apiPackage("com.sngular.multifileplugin.tagsgeneration") - .modelPackage("com.sngular.multifileplugin.tagsgeneration.model") - .modelNameSuffix("DTO") - .useTagsGroup(true) - .useLombokModelAnnotation(false) - .build() - ); - - static final List TEST_MULTIPLE_REF_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testMultipleRefGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.multipleref") - .modelPackage("com.sngular.multifileplugin.multipleref.model") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .build() - ); - - static final List TEST_PATH_PARAMETER_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testApiPathParameterGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.pathparameter") - .modelPackage("com.sngular.multifileplugin.pathparameter.model") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .build() - ); - - static final List TEST_WEB_CLIENT_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testWebClientApiGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.webclientapi") - .modelPackage("com.sngular.multifileplugin.webclientapi.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .callMode(true) - .isReactive(true) - .build() - ); - - static final List TEST_CLIENT_PACKAGE_WEB_CLIENT_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testClientPackageWebClientApiGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.clpkgwebclientapi") - .modelPackage("com.sngular.multifileplugin.clpkgwebclientapi.model") - .clientPackage("com.sngular.multifileplugin.clpkgwebclientapi.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .callMode(true) - .build() - ); - - static final List TEST_REST_CLIENT_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testRestClientApiGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.restclient") - .modelPackage("com.sngular.multifileplugin.restclient.model") - .clientPackage("com.sngular.multifileplugin.restclient.client") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .callMode(true) - .build() - ); - - static final List TEST_REST_CLIENT_API_WITH_REQUEST_OBJECTS_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testRestClientApiWithRequestObjectGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.restclientWithRequestObjects") - .modelPackage("com.sngular.multifileplugin.restclientWithRequestObjects.model") - .clientPackage("com.sngular.multifileplugin.restclientWithRequestObjects.client") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(false) - .callMode(true) - .build() - ); - - static final List TEST_ENUMS_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testApiEnumsGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.enumgeneration") - .modelPackage("com.sngular.multifileplugin.enumgeneration.model") - .clientPackage("com.sngular.multifileplugin.enumgeneration.client") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .build() - ); - - static final List TEST_ENUMS_LOMBOK_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testApiEnumsLombokGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.enumlombokgeneration") - .modelPackage("com.sngular.multifileplugin.enumlombokgeneration.model") - .clientPackage("com.sngular.multifileplugin.enumlombokgeneration.client") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_EXTERNAL_REF_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testExternalRefsGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.externalref") - .modelPackage("com.sngular.multifileplugin.externalref.model") - .clientPackage("com.sngular.multifileplugin.externalref.client") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .build() - ); - - static final List TEST_ANY_OF_IN_RESPONSE = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testAnyOfInResponse/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testanyofinresponse") - .modelPackage("com.sngular.multifileplugin.testanyofinresponse.model") - .clientPackage("com.sngular.multifileplugin.testanyofinresponse.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_ONE_OF_IN_RESPONSE = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testOneOfInResponse/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testoneofinresponse") - .modelPackage("com.sngular.multifileplugin.testoneofinresponse.model") - .clientPackage("com.sngular.multifileplugin.testoneofinresponse.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_ADDITIONAL_PROPERTIES = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testAdditionalProperties/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testadditionalproperties") - .modelPackage("com.sngular.multifileplugin.testadditionalproperties.model") - .clientPackage("com.sngular.multifileplugin.testadditionalproperties.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_ADDITIONAL_PROPERTIES_WITH_SCHEMA = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testAdditionalPropertiesWithSchema/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testadditionalpropertiesWithSchema") - .modelPackage("com.sngular.multifileplugin.testadditionalpropertiesWithSchema.model") - .clientPackage("com.sngular.multifileplugin.testadditionalpropertiesWithSchema.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_ADDITIONAL_PROPERTIES_WITH_UNNAMED_OBJECT = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testAdditionalPropertiesWithUnnamedObject/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testadditionalpropertiesWithUnnamedObject") - .modelPackage("com.sngular.multifileplugin.testadditionalpropertiesWithUnnamedObject.model") - .clientPackage("com.sngular.multifileplugin.testadditionalpropertiesWithUnnamedObject.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_COCONUT_SCHEMA = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testCoconutSchema/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testCoconutSchema") - .modelPackage("com.sngular.multifileplugin.testCoconutSchema.model") - .clientPackage("com.sngular.multifileplugin.testCoconutSchema.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_RESTRICTION_SCHEMA = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testRestrictionsSchema/api-rest.yaml") - .apiPackage("com.sngular.multifileplugin.testRestrictionsSchema") - .modelPackage("com.sngular.multifileplugin.testRestrictionsSchema.model") - .clientPackage("com.sngular.multifileplugin.testRestrictionsSchema.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_SIMPLE_BUILD = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testSimpleBuild/api-rest.yaml") - .apiPackage("com.sngular.multifileplugin.testsimplebuild") - .modelPackage("com.sngular.multifileplugin.testsimplebuild.model") - .clientPackage("com.sngular.multifileplugin.testsimplebuild.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_VALIDATION_ANNOTATIONS = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testValidationAnnotations/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testapi") - .modelPackage("com.sngular.multifileplugin.testapi.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .build() - ); - - static final List TEST_VALIDATION_ANNOTATIONS_LOMBOK = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testValidationAnnotations/api-test.yml") - .apiPackage("com.sngular.multifileplugin.lombok.testapi") - .modelPackage("com.sngular.multifileplugin.lombok.testapi.model") - .modelNamePrefix("Api") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_CREATE_DTO = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testCreateDTO/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testCreateDTO") - .modelPackage("com.sngular.multifileplugin.testCreateDTO.model") - .clientPackage("com.sngular.multifileplugin.testCreateDTO.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_CREATE_DTO_WITH_ENUM = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testCreateDTOWithEnum/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testCreateDTOWithEnum") - .modelPackage("com.sngular.multifileplugin.testCreateDTOWithEnum.model") - .clientPackage("com.sngular.multifileplugin.testCreateDTOWithEnum.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_CREATE_BASIC_DTO = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testCreateBasicDTO/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testCreateBasicDTO") - .modelPackage("com.sngular.multifileplugin.testCreateBasicDTO.model") - .clientPackage("com.sngular.multifileplugin.testCreateBasicDTO.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_ISSUE_FAKER = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testIssueFaker/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testissuefaker") - .modelPackage("com.sngular.multifileplugin.testissuefaker.model") - .clientPackage("com.sngular.multifileplugin.testissuefaker.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_DATE_TIME = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testDateTime/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testDateTime") - .modelPackage("com.sngular.multifileplugin.testDateTime.model") - .clientPackage("com.sngular.multifileplugin.testDateTime.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_DATE_TIME_ZONED = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testDateTimeZoned/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testDateTimeZoned") - .modelPackage("com.sngular.multifileplugin.testDateTimeZoned.model") - .clientPackage("com.sngular.multifileplugin.testDateTimeZoned.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .useTimeType(TimeType.ZONED) - .build() - ); - - static final List TEST_DATE_TIME_OFFSET = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testDateTimeOffset/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testDateTimeOffset") - .modelPackage("com.sngular.multifileplugin.testDateTimeOffset.model") - .clientPackage("com.sngular.multifileplugin.testDateTimeOffset.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .useTimeType(TimeType.OFFSET) - .build() - ); - - static final List TEST_LIST_STRING = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testListString/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testListString") - .modelPackage("com.sngular.multifileplugin.testListString.model") - .clientPackage("com.sngular.multifileplugin.testListString.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_REFERENCE_FILE = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testReferenceFile/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testReferenceFile") - .modelPackage("com.sngular.multifileplugin.testReferenceFile.model") - .clientPackage("com.sngular.multifileplugin.testReferenceFile.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_REFERENCE_FILE_NO_COMPONENTS = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testReferenceFileNoComponents/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testreferencefilenocomponents") - .modelPackage("com.sngular.multifileplugin.testreferencefilenocomponents.model") - .clientPackage("com.sngular.multifileplugin.testreferencefilenocomponents.client") - .modelNameSuffix("DTO") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_QUERY_PARAM = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testQueryParam/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testQueryParam") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_API_WITH_NO_COMPONENTS = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testApiWithNoComponents/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testApiWithNoComponents") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_GENERATION_WITH_NO_OPERATION_ID = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testGenerationWithNoOperationId/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testGenerationWithNoOperationId") - .useLombokModelAnnotation(true) - .build() - ); - - static final List TEST_FORM_DATA_MULTIPART_GENERATION = List.of( - SpecFile - .builder() - .filePath("openapigenerator/testFormDataMultipartGeneration/api-test.yml") - .apiPackage("com.sngular.multifileplugin.testformdatamultipartgeneration") - .useLombokModelAnnotation(true) - .build() - ); - - private OpenApiGeneratorFixtures() { - } - - static Function validateOneOfInResponse() { - - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testoneofinresponse"; - - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testoneofinresponse/model"; - - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testoneofinresponse/model/exception"; - - final String COMMON_PATH = "openapigenerator/testOneOfInResponse/"; - - final String ASSETS_PATH = COMMON_PATH + "assets/"; - - final List expectedTestApiFile = List.of( - ASSETS_PATH + "GamesApi.java"); - - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "GameDTO.java", - ASSETS_PATH + "GameInfoDTO.java", - ASSETS_PATH + "InlineResponse200ListGamesOneOfDTO.java" - - ); + static final String GENERATED = "generated"; + + static final String TARGET = "target"; + + static final List TEST_ALL_OF = List.of(SpecFile.builder() + .filePath("openapigenerator/testAllOf/api-test.yml").apiPackage("com.sngular.multifileplugin.testapi") + .modelPackage("com.sngular.multifileplugin.testapi.model").modelNamePrefix("Api").modelNameSuffix("DTO") + .build()); + + static final List TEST_COMPLEX_ANY_OF = List + .of(SpecFile.builder().filePath("openapigenerator/testComplexAnyOf/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testcomplexanyof.api") + .modelPackage("com.sngular.multifileplugin.testcomplexanyof.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").build()); + + static final List TEST_ALL_OF_LOMBOK = List + .of(SpecFile.builder().filePath("openapigenerator/testAllOf/api-test.yml") + .apiPackage("com.sngular.multifileplugin.lombok.testapi") + .modelPackage("com.sngular.multifileplugin.lombok.testapi.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(true).build()); + + static final List TEST_OVER_WRITE_MODEL_TRUE = List + .of(SpecFile.builder().filePath("openapigenerator/testOverWriteModelTrue/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testoverwriteapi") + .modelPackage("com.sngular.multifileplugin.testoverwriteapi.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(false).build()); + + static final List TEST_API_CLIENT_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testApiClientGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testapiclient") + .modelPackage("com.sngular.multifileplugin.testapiclient.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(true).build()); + + static final List TEST_INLINE_SCHEMA_CREATION = List + .of(SpecFile.builder().filePath("openapigenerator/testInlineSchemaCreation/api-test.yml") + .apiPackage("com.sngular.multifileplugin.inlineschemacreation") + .modelPackage("com.sngular.multifileplugin.inlineschemacreation.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(false).build()); + + static final List TEST_PARAMETER_WITH_CONTENT_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testApiParametersWithContentGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.parameterwithcontent") + .modelPackage("com.sngular.multifileplugin.parameterwithcontent.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(false).build()); + + static final List TEST_PATH_WITH_SLASH_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testApiPathWithSpecialCharGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.pathwithspecialchar") + .modelPackage("com.sngular.multifileplugin.pathwithspecialchar.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(false).build()); + + static final List TEST_API_REACTIVE_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testApiReactiveGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.reactivegeneration") + .modelPackage("com.sngular.multifileplugin.reactivegeneration.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(false).isReactive(true).build()); + + static final List TEST_API_TAGS_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testApiTagsGeneration/api-tags-test.yml") + .apiPackage("com.sngular.multifileplugin.tagsgeneration") + .modelPackage("com.sngular.multifileplugin.tagsgeneration.model").modelNameSuffix("DTO") + .useTagsGroup(true).useLombokModelAnnotation(false).build()); + + static final List TEST_MULTIPLE_REF_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testMultipleRefGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.multipleref") + .modelPackage("com.sngular.multifileplugin.multipleref.model").modelNameSuffix("DTO") + .useLombokModelAnnotation(false).build()); + + static final List TEST_PATH_PARAMETER_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testApiPathParameterGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.pathparameter") + .modelPackage("com.sngular.multifileplugin.pathparameter.model").modelNameSuffix("DTO") + .useLombokModelAnnotation(false).build()); + + static final List TEST_WEB_CLIENT_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testWebClientApiGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.webclientapi") + .modelPackage("com.sngular.multifileplugin.webclientapi.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(false).callMode(true).isReactive(true).build()); + + static final List TEST_CLIENT_PACKAGE_WEB_CLIENT_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testClientPackageWebClientApiGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.clpkgwebclientapi") + .modelPackage("com.sngular.multifileplugin.clpkgwebclientapi.model") + .clientPackage("com.sngular.multifileplugin.clpkgwebclientapi.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(false).callMode(true).build()); + + static final List TEST_REST_CLIENT_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testRestClientApiGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.restclient") + .modelPackage("com.sngular.multifileplugin.restclient.model") + .clientPackage("com.sngular.multifileplugin.restclient.client").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(false).callMode(true).build()); + + static final List TEST_REST_CLIENT_API_WITH_REQUEST_OBJECTS_GENERATION = List.of(SpecFile.builder() + .filePath("openapigenerator/testRestClientApiWithRequestObjectGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.restclientWithRequestObjects") + .modelPackage("com.sngular.multifileplugin.restclientWithRequestObjects.model") + .clientPackage("com.sngular.multifileplugin.restclientWithRequestObjects.client").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(false).callMode(true).build()); + + static final List TEST_ENUMS_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testApiEnumsGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.enumgeneration") + .modelPackage("com.sngular.multifileplugin.enumgeneration.model") + .clientPackage("com.sngular.multifileplugin.enumgeneration.client").modelNamePrefix("Api") + .modelNameSuffix("DTO").build()); + + static final List TEST_ENUMS_LOMBOK_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testApiEnumsLombokGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.enumlombokgeneration") + .modelPackage("com.sngular.multifileplugin.enumlombokgeneration.model") + .clientPackage("com.sngular.multifileplugin.enumlombokgeneration.client").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(true).build()); + + static final List TEST_EXTERNAL_REF_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testExternalRefsGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.externalref") + .modelPackage("com.sngular.multifileplugin.externalref.model") + .clientPackage("com.sngular.multifileplugin.externalref.client").modelNamePrefix("Api") + .modelNameSuffix("DTO").build()); + + static final List TEST_ANY_OF_IN_RESPONSE = List + .of(SpecFile.builder().filePath("openapigenerator/testAnyOfInResponse/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testanyofinresponse") + .modelPackage("com.sngular.multifileplugin.testanyofinresponse.model") + .clientPackage("com.sngular.multifileplugin.testanyofinresponse.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_ONE_OF_IN_RESPONSE = List + .of(SpecFile.builder().filePath("openapigenerator/testOneOfInResponse/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testoneofinresponse") + .modelPackage("com.sngular.multifileplugin.testoneofinresponse.model") + .clientPackage("com.sngular.multifileplugin.testoneofinresponse.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_ADDITIONAL_PROPERTIES = List + .of(SpecFile.builder().filePath("openapigenerator/testAdditionalProperties/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testadditionalproperties") + .modelPackage("com.sngular.multifileplugin.testadditionalproperties.model") + .clientPackage("com.sngular.multifileplugin.testadditionalproperties.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_ADDITIONAL_PROPERTIES_FALSE = List + .of(SpecFile.builder().filePath("openapigenerator/testAdditionalPropertiesFalse/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testadditionalpropertiesfalse") + .modelPackage("com.sngular.multifileplugin.testadditionalpropertiesfalse.model") + .clientPackage("com.sngular.multifileplugin.testadditionalpropertiesfalse.client") + .modelNameSuffix("DTO").useLombokModelAnnotation(true).build()); + + static final List TEST_ADDITIONAL_PROPERTIES_WITH_SCHEMA = List + .of(SpecFile.builder().filePath("openapigenerator/testAdditionalPropertiesWithSchema/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testadditionalpropertiesWithSchema") + .modelPackage("com.sngular.multifileplugin.testadditionalpropertiesWithSchema.model") + .clientPackage("com.sngular.multifileplugin.testadditionalpropertiesWithSchema.client") + .modelNameSuffix("DTO").useLombokModelAnnotation(true).build()); + + static final List TEST_ADDITIONAL_PROPERTIES_WITH_UNNAMED_OBJECT = List + .of(SpecFile.builder().filePath("openapigenerator/testAdditionalPropertiesWithUnnamedObject/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testadditionalpropertiesWithUnnamedObject") + .modelPackage("com.sngular.multifileplugin.testadditionalpropertiesWithUnnamedObject.model") + .clientPackage("com.sngular.multifileplugin.testadditionalpropertiesWithUnnamedObject.client") + .modelNameSuffix("DTO").useLombokModelAnnotation(true).build()); + + static final List TEST_COCONUT_SCHEMA = List + .of(SpecFile.builder().filePath("openapigenerator/testCoconutSchema/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testCoconutSchema") + .modelPackage("com.sngular.multifileplugin.testCoconutSchema.model") + .clientPackage("com.sngular.multifileplugin.testCoconutSchema.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_RESTRICTION_SCHEMA = List + .of(SpecFile.builder().filePath("openapigenerator/testRestrictionsSchema/api-rest.yaml") + .apiPackage("com.sngular.multifileplugin.testRestrictionsSchema") + .modelPackage("com.sngular.multifileplugin.testRestrictionsSchema.model") + .clientPackage("com.sngular.multifileplugin.testRestrictionsSchema.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_SIMPLE_BUILD = List + .of(SpecFile.builder().filePath("openapigenerator/testSimpleBuild/api-rest.yaml") + .apiPackage("com.sngular.multifileplugin.testsimplebuild") + .modelPackage("com.sngular.multifileplugin.testsimplebuild.model") + .clientPackage("com.sngular.multifileplugin.testsimplebuild.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_VALIDATION_ANNOTATIONS = List.of(SpecFile.builder() + .filePath("openapigenerator/testValidationAnnotations/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testapi").modelPackage("com.sngular.multifileplugin.testapi.model") + .modelNamePrefix("Api").modelNameSuffix("DTO").build()); + + static final List TEST_VALIDATION_ANNOTATIONS_LOMBOK = List + .of(SpecFile.builder().filePath("openapigenerator/testValidationAnnotations/api-test.yml") + .apiPackage("com.sngular.multifileplugin.lombok.testapi") + .modelPackage("com.sngular.multifileplugin.lombok.testapi.model").modelNamePrefix("Api") + .modelNameSuffix("DTO").useLombokModelAnnotation(true).build()); + + static final List TEST_CREATE_DTO = List + .of(SpecFile.builder().filePath("openapigenerator/testCreateDTO/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testCreateDTO") + .modelPackage("com.sngular.multifileplugin.testCreateDTO.model") + .clientPackage("com.sngular.multifileplugin.testCreateDTO.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_CREATE_DTO_WITH_ENUM = List + .of(SpecFile.builder().filePath("openapigenerator/testCreateDTOWithEnum/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testCreateDTOWithEnum") + .modelPackage("com.sngular.multifileplugin.testCreateDTOWithEnum.model") + .clientPackage("com.sngular.multifileplugin.testCreateDTOWithEnum.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_CREATE_BASIC_DTO = List + .of(SpecFile.builder().filePath("openapigenerator/testCreateBasicDTO/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testCreateBasicDTO") + .modelPackage("com.sngular.multifileplugin.testCreateBasicDTO.model") + .clientPackage("com.sngular.multifileplugin.testCreateBasicDTO.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_ISSUE_FAKER = List + .of(SpecFile.builder().filePath("openapigenerator/testIssueFaker/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testissuefaker") + .modelPackage("com.sngular.multifileplugin.testissuefaker.model") + .clientPackage("com.sngular.multifileplugin.testissuefaker.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_DATE_TIME = List + .of(SpecFile.builder().filePath("openapigenerator/testDateTime/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testDateTime") + .modelPackage("com.sngular.multifileplugin.testDateTime.model") + .clientPackage("com.sngular.multifileplugin.testDateTime.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_DATE_TIME_ZONED = List + .of(SpecFile.builder().filePath("openapigenerator/testDateTimeZoned/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testDateTimeZoned") + .modelPackage("com.sngular.multifileplugin.testDateTimeZoned.model") + .clientPackage("com.sngular.multifileplugin.testDateTimeZoned.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).useTimeType(TimeType.ZONED).build()); + + static final List TEST_DATE_TIME_OFFSET = List + .of(SpecFile.builder().filePath("openapigenerator/testDateTimeOffset/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testDateTimeOffset") + .modelPackage("com.sngular.multifileplugin.testDateTimeOffset.model") + .clientPackage("com.sngular.multifileplugin.testDateTimeOffset.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).useTimeType(TimeType.OFFSET).build()); + + static final List TEST_LIST_STRING = List + .of(SpecFile.builder().filePath("openapigenerator/testListString/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testListString") + .modelPackage("com.sngular.multifileplugin.testListString.model") + .clientPackage("com.sngular.multifileplugin.testListString.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_REFERENCE_FILE = List + .of(SpecFile.builder().filePath("openapigenerator/testReferenceFile/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testReferenceFile") + .modelPackage("com.sngular.multifileplugin.testReferenceFile.model") + .clientPackage("com.sngular.multifileplugin.testReferenceFile.client").modelNameSuffix("DTO") + .useLombokModelAnnotation(true).build()); + + static final List TEST_REFERENCE_FILE_NO_COMPONENTS = List + .of(SpecFile.builder().filePath("openapigenerator/testReferenceFileNoComponents/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testreferencefilenocomponents") + .modelPackage("com.sngular.multifileplugin.testreferencefilenocomponents.model") + .clientPackage("com.sngular.multifileplugin.testreferencefilenocomponents.client") + .modelNameSuffix("DTO").useLombokModelAnnotation(true).build()); + + static final List TEST_QUERY_PARAM = List + .of(SpecFile.builder().filePath("openapigenerator/testQueryParam/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testQueryParam").useLombokModelAnnotation(true).build()); + + static final List TEST_API_WITH_NO_COMPONENTS = List.of(SpecFile.builder() + .filePath("openapigenerator/testApiWithNoComponents/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testApiWithNoComponents").useLombokModelAnnotation(true).build()); + + static final List TEST_GENERATION_WITH_NO_OPERATION_ID = List + .of(SpecFile.builder().filePath("openapigenerator/testGenerationWithNoOperationId/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testGenerationWithNoOperationId") + .useLombokModelAnnotation(true).build()); + + static final List TEST_FORM_DATA_MULTIPART_GENERATION = List + .of(SpecFile.builder().filePath("openapigenerator/testFormDataMultipartGeneration/api-test.yml") + .apiPackage("com.sngular.multifileplugin.testformdatamultipartgeneration") + .useLombokModelAnnotation(true).build()); + + private OpenApiGeneratorFixtures() { + } + + static Function validateOneOfInResponse() { + + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testoneofinresponse"; + + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testoneofinresponse/model"; + + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testoneofinresponse/model/exception"; + + final String COMMON_PATH = "openapigenerator/testOneOfInResponse/"; + + final String ASSETS_PATH = COMMON_PATH + "assets/"; + + final List expectedTestApiFile = List.of(ASSETS_PATH + "GamesApi.java"); + + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "GameDTO.java", + ASSETS_PATH + "GameInfoDTO.java", ASSETS_PATH + "InlineResponse200ListGamesOneOfDTO.java" + + ); + + final List expectedExceptionFiles = List.of(ASSETS_PATH + "ModelClassException.java"); + + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + } + + static Function validateAllOf() { + + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testapi"; + + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testapi/model"; + + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testapi/model/exception"; + + final String COMMON_PATH = "openapigenerator/testAllOf/"; + + final String ASSETS_PATH = COMMON_PATH + "assets/"; + + final List expectedTestApiFile = List.of(ASSETS_PATH + "testApi/TestApi.java"); + + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "testApi/ApiErrorDTO.java", + ASSETS_PATH + "testApi/ApiTestAllOfDTO.java", ASSETS_PATH + "testApi/ApiTestDTO.java", + ASSETS_PATH + "testApi/ApiTestInfoDTO.java" + + ); + + final List expectedExceptionFiles = List.of(ASSETS_PATH + "ModelClassException.java"); + + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + } + + static Function validateComplexAnyOf() { + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testcomplexanyof/api"; + + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testcomplexanyof/model"; + + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testcomplexanyof/model/exception"; - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "ModelClassException.java"); + final String COMMON_PATH = "openapigenerator/testComplexAnyOf/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - } + final String ASSETS_PATH = COMMON_PATH + "assets/"; - static Function validateAllOf() { + final List expectedTestApiFile = List.of(ASSETS_PATH + "SchemaApi.java", + ASSETS_PATH + "SchemaMasterApi.java", ASSETS_PATH + "SchemasApi.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testapi"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiArrayFieldDTO.java", + ASSETS_PATH + "ApiBooleanFieldDTO.java", ASSETS_PATH + "ApiDateFieldDTO.java", + ASSETS_PATH + "ApiDefaultItemDTO.java", ASSETS_PATH + "ApiEnumFieldDTO.java", + ASSETS_PATH + "ApiMapFieldDTO.java", ASSETS_PATH + "ApiNumberFieldDTO.java", + ASSETS_PATH + "ApiObjectFieldDTO.java", ASSETS_PATH + "ApiSchemaDTO.java", + ASSETS_PATH + "ApiSequenceFieldDTO.java", ASSETS_PATH + "ApiStringFieldDTO.java", + ASSETS_PATH + "ApiTypeArrayDTO.java", ASSETS_PATH + "ApiUnionFieldDTO.java"); - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testapi/model"; + final List expectedExceptionFiles = List.of(ASSETS_PATH + "ModelClassException.java"); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testapi/model/exception"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + } - final String COMMON_PATH = "openapigenerator/testAllOf/"; + static Function validateAllOfLombok() { - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_LOMBOK_TARGET_API = "generated/com/sngular/multifileplugin/lombok/testapi"; - final List expectedTestApiFile = List.of( - ASSETS_PATH + "testApi/TestApi.java"); + final String DEFAULT_LOMBOK_MODEL_API = "generated/com/sngular/multifileplugin/lombok/testapi/model"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "testApi/ApiErrorDTO.java", - ASSETS_PATH + "testApi/ApiTestAllOfDTO.java", - ASSETS_PATH + "testApi/ApiTestDTO.java", - ASSETS_PATH + "testApi/ApiTestInfoDTO.java" + final String COMMON_PATH = "openapigenerator/testAllOf/"; - ); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "ModelClassException.java"); + final List expectedTestApiFile = List.of(ASSETS_PATH + "lombok/TestApi.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - } + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "lombok/ApiErrorDTO.java", + ASSETS_PATH + "lombok/ApiTestAllOfDTO.java", ASSETS_PATH + "lombok/ApiTestDTO.java", + ASSETS_PATH + "lombok/ApiTestInfoDTO.java" - static Function validateComplexAnyOf() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testcomplexanyof/api"; + ); - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testcomplexanyof/model"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_LOMBOK_TARGET_API, + DEFAULT_LOMBOK_MODEL_API, Collections.emptyList(), null); + } - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testcomplexanyof/model/exception"; + static Function validateOverwriteModeTrue() { - final String COMMON_PATH = "openapigenerator/testComplexAnyOf/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testoverwriteapi"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testoverwriteapi/model"; - final List expectedTestApiFile = List.of( - ASSETS_PATH + "SchemaApi.java", - ASSETS_PATH + "SchemaMasterApi.java", - ASSETS_PATH + "SchemasApi.java"); + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testoverwriteapi/model/exception"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiArrayFieldDTO.java", - ASSETS_PATH + "ApiBooleanFieldDTO.java", - ASSETS_PATH + "ApiDateFieldDTO.java", - ASSETS_PATH + "ApiDefaultItemDTO.java", - ASSETS_PATH + "ApiEnumFieldDTO.java", - ASSETS_PATH + "ApiMapFieldDTO.java", - ASSETS_PATH + "ApiNumberFieldDTO.java", - ASSETS_PATH + "ApiObjectFieldDTO.java", - ASSETS_PATH + "ApiSchemaDTO.java", - ASSETS_PATH + "ApiSequenceFieldDTO.java", - ASSETS_PATH + "ApiStringFieldDTO.java", - ASSETS_PATH + "ApiTypeArrayDTO.java", - ASSETS_PATH + "ApiUnionFieldDTO.java" - ); + final String COMMON_PATH = "openapigenerator/testOverWriteModelTrue/"; - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "ModelClassException.java"); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - } + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - static Function validateAllOfLombok() { + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiErrorDTO.java", + ASSETS_PATH + "ApiTestDTO.java", ASSETS_PATH + "ApiTestInfoDTO.java"); - final String DEFAULT_LOMBOK_TARGET_API = "generated/com/sngular/multifileplugin/lombok/testapi"; + final List expectedExceptionFiles = List.of(ASSETS_PATH + "exception/ModelClassException.java"); - final String DEFAULT_LOMBOK_MODEL_API = "generated/com/sngular/multifileplugin/lombok/testapi/model"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - final String COMMON_PATH = "openapigenerator/testAllOf/"; + } - final String ASSETS_PATH = COMMON_PATH + "assets/"; + static Function validateApiClientGeneration() { - List expectedTestApiFile = List.of( - ASSETS_PATH + "lombok/TestApi.java"); + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testapiclient"; - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "lombok/ApiErrorDTO.java", - ASSETS_PATH + "lombok/ApiTestAllOfDTO.java", - ASSETS_PATH + "lombok/ApiTestDTO.java", - ASSETS_PATH + "lombok/ApiTestInfoDTO.java" + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testapiclient/model"; - ); + final String COMMON_PATH = "openapigenerator/testApiClientGeneration/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_LOMBOK_TARGET_API, DEFAULT_LOMBOK_MODEL_API, Collections.emptyList(), null); - } + final String ASSETS_PATH = COMMON_PATH + "assets/"; - static Function validateOverwriteModeTrue() { + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testoverwriteapi"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiErrorDTO.java", + ASSETS_PATH + "ApiTestDTO.java", ASSETS_PATH + "ApiTestInfoDTO.java"); - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testoverwriteapi/model"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testoverwriteapi/model/exception"; + } - final String COMMON_PATH = "openapigenerator/testOverWriteModelTrue/"; + static Function validateInlineSchemaCreation() { - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/inlineschemacreation"; - final List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java"); + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/inlineschemacreation/model"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiErrorDTO.java", - ASSETS_PATH + "ApiTestDTO.java", - ASSETS_PATH + "ApiTestInfoDTO.java" - ); + final String COMMON_PATH = "openapigenerator/testInlineSchemaCreation/"; - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "exception/ModelClassException.java"); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + final List expectedTestApiFile = List.of(ASSETS_PATH + "RuleApi.java", ASSETS_PATH + "RulesApi.java"); - } + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiErrorDTO.java", + ASSETS_PATH + "ApiTestDTO.java", ASSETS_PATH + "ApiTestProcessorDTO.java", + ASSETS_PATH + "ApiTestTypeDTO.java"); - static Function validateApiClientGeneration() { + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testapiclient"; + static Function validateParametersWithSchemaGeneration() { - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testapiclient/model"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/parameterwithcontent"; - final String COMMON_PATH = "openapigenerator/testApiClientGeneration/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/parameterwithcontent/model"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String COMMON_PATH = "openapigenerator/testApiParametersWithContentGeneration/"; - List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java"); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiErrorDTO.java", - ASSETS_PATH + "ApiTestDTO.java", - ASSETS_PATH + "ApiTestInfoDTO.java" - ); + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiErrorDTO.java", + ASSETS_PATH + "ApiInlineParameterTestIdDTO.java", ASSETS_PATH + "ApiTestDTO.java", + ASSETS_PATH + "ApiTestInfoDTO.java"); - } + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - static Function validateInlineSchemaCreation() { + static Function validatePathWithSpecialCharGeneration() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/inlineschemacreation"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/pathwithspecialchar"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/inlineschemacreation/model"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/pathwithspecialchar/model"; - final String COMMON_PATH = "openapigenerator/testInlineSchemaCreation/"; + final String COMMON_PATH = "openapigenerator/testApiPathWithSpecialCharGeneration/"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final List expectedTestApiFile = List.of( - ASSETS_PATH + "RuleApi.java", - ASSETS_PATH + "RulesApi.java" - ); + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java", + ASSETS_PATH + "TestSchemaApi.java"); - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiErrorDTO.java", - ASSETS_PATH + "ApiTestDTO.java", - ASSETS_PATH + "ApiTestProcessorDTO.java", - ASSETS_PATH + "ApiTestTypeDTO.java" - ); + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiErrorDTO.java", + ASSETS_PATH + "ApiTestDTO.java", ASSETS_PATH + "ApiTestInfoDTO.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); - } + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); - static Function validateParametersWithSchemaGeneration() { + } - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/parameterwithcontent"; + static Function validateApiReactiveGeneration(int springBootVersion) { - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/parameterwithcontent/model"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/reactivegeneration"; - final String COMMON_PATH = "openapigenerator/testApiParametersWithContentGeneration/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/reactivegeneration/model"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String COMMON_PATH = "openapigenerator/testApiReactiveGeneration/"; - final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiErrorDTO.java", - ASSETS_PATH + "ApiInlineParameterTestIdDTO.java", - ASSETS_PATH + "ApiTestDTO.java", - ASSETS_PATH + "ApiTestInfoDTO.java" - ); + final List expectedTestApiFile = List + .of(ASSETS_PATH + calculateJavaEEPackage(springBootVersion) + "TestApi.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); - } + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiErrorDTO.java", + ASSETS_PATH + "ApiTestDTO.java", ASSETS_PATH + "ApiTestInfoDTO.java"); - static Function validatePathWithSpecialCharGeneration() { + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/pathwithspecialchar"; + } - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/pathwithspecialchar/model"; + static Function validateTagsGeneration() { - final String COMMON_PATH = "openapigenerator/testApiPathWithSpecialCharGeneration/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/tagsgeneration"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/tagsgeneration/model"; - List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java", - ASSETS_PATH + "TestSchemaApi.java" - ); + final String COMMON_PATH = "openapigenerator/testApiTagsGeneration/"; - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiErrorDTO.java", - ASSETS_PATH + "ApiTestDTO.java", - ASSETS_PATH + "ApiTestInfoDTO.java" - ); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestTagFirstApi.java", + ASSETS_PATH + "TestTagSecondApi.java"); - } + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ErrorDTO.java", + ASSETS_PATH + "TestDTO.java", ASSETS_PATH + "TestInfoDTO.java"); - static Function validateApiReactiveGeneration(int springBootVersion) { + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/reactivegeneration"; + } - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/reactivegeneration/model"; + static Function validateMultipleRefGeneration() { - final String COMMON_PATH = "openapigenerator/testApiReactiveGeneration/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/multipleref"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/multipleref/model"; - List expectedTestApiFile = List.of( - ASSETS_PATH + calculateJavaEEPackage(springBootVersion) + "TestApi.java" - ); + final String COMMON_PATH = "openapigenerator/testMultipleRefGeneration/"; - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiErrorDTO.java", - ASSETS_PATH + "ApiTestDTO.java", - ASSETS_PATH + "ApiTestInfoDTO.java" - ); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - } + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "InlineResponse200CreateGameDTO.java", + ASSETS_PATH + "MessageDTO.java"); - static Function validateTagsGeneration() { + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/tagsgeneration"; + } - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/tagsgeneration/model"; + static Function validatePathParameterGeneration() { - final String COMMON_PATH = "openapigenerator/testApiTagsGeneration/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/pathparameter"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/pathparameter/model"; - List expectedTestApiFile = List.of( - ASSETS_PATH + "TestTagFirstApi.java", - ASSETS_PATH + "TestTagSecondApi.java" - ); + final String COMMON_PATH = "openapigenerator/testApiPathParameterGeneration/"; - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ErrorDTO.java", - ASSETS_PATH + "TestDTO.java", - ASSETS_PATH + "TestInfoDTO.java" - ); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - } + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ErrorDTO.java", + ASSETS_PATH + "TestDTO.java", ASSETS_PATH + "TestInfoDTO.java"); - static Function validateMultipleRefGeneration() { + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/multipleref"; + } - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/multipleref/model"; + static Function validateWebClientGeneration() { - final String COMMON_PATH = "openapigenerator/testMultipleRefGeneration/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/webclientapi"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/webclientapi/model"; - List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java" - ); + final String COMMON_PATH = "openapigenerator/testWebClientApiGeneration/"; - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "InlineResponse200CreateGameDTO.java", - ASSETS_PATH + "MessageDTO.java" - ); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - } + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiErrorDTO.java", + ASSETS_PATH + "ApiTestDTO.java", ASSETS_PATH + "ApiTestInfoDTO.java"); - static Function validatePathParameterGeneration() { + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/pathparameter"; + } - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/pathparameter/model"; + static Function validateClientPackageWebClientGeneration() { - final String COMMON_PATH = "openapigenerator/testApiPathParameterGeneration/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/clpkgwebclientapi/client"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/clpkgwebclientapi/client/auth"; - List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java" - ); + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/clpkgwebclientapi/model/exception"; - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ErrorDTO.java", - ASSETS_PATH + "TestDTO.java", - ASSETS_PATH + "TestInfoDTO.java" - ); + final String COMMON_PATH = "openapigenerator/testClientPackageWebClientApiGeneration/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - } + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestClient.java"); - static Function validateWebClientGeneration() { + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "TestAuth.java", + ASSETS_PATH + "TestHttpBasicAuth.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/webclientapi"; + final List expectedExceptionFiles = List.of(ASSETS_PATH + "ModelClassException.java"); - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/webclientapi/model"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - final String COMMON_PATH = "openapigenerator/testWebClientApiGeneration/"; + } - final String ASSETS_PATH = COMMON_PATH + "assets/"; + static Function validateRestClientGeneration() { - List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java" - ); + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/restclient"; - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiErrorDTO.java", - ASSETS_PATH + "ApiTestDTO.java", - ASSETS_PATH + "ApiTestInfoDTO.java" - ); + final String CLIENT_TARGET_API = "generated/com/sngular/multifileplugin/restclient/client"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); + final String CLIENT_MODEL_API = "generated/com/sngular/multifileplugin/restclient/client/auth"; - } + final String COMMON_PATH = "openapigenerator/testRestClientApiGeneration/"; - static Function validateClientPackageWebClientGeneration() { + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/clpkgwebclientapi/client"; + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/clpkgwebclientapi/client/auth"; + final List expectedTestClientApiFile = List.of(ASSETS_PATH + "client/ApiRestClient.java"); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/clpkgwebclientapi/model/exception"; + final List expectedTestClientAuthModelFiles = List.of(ASSETS_PATH + "client/auth/Authentication.java", + ASSETS_PATH + "client/auth/HttpBasicAuth.java"); - final String COMMON_PATH = "openapigenerator/testClientPackageWebClientApiGeneration/"; + return path -> commonTest(path, expectedTestApiFile, Collections.emptyList(), DEFAULT_TARGET_API, null, + Collections.emptyList(), null) + && commonTest(path, expectedTestClientApiFile, expectedTestClientAuthModelFiles, CLIENT_TARGET_API, + CLIENT_MODEL_API, Collections.emptyList(), null); + } - final String ASSETS_PATH = COMMON_PATH + "assets/"; + static Function validateRestClientWithRequestBodyGeneration() { - List expectedTestApiFile = List.of( - ASSETS_PATH + "TestClient.java" - ); + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/restclientWithRequestObjects"; - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "TestAuth.java", - ASSETS_PATH + "TestHttpBasicAuth.java" - ); + final String CLIENT_TARGET_API = "generated/com/sngular/multifileplugin/restclientWithRequestObjects/client"; - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "ModelClassException.java"); + final String CLIENT_MODEL_API = "generated/com/sngular/multifileplugin/restclientWithRequestObjects/client/auth"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + final String COMMON_PATH = "openapigenerator/testRestClientApiWithRequestObjectGeneration/"; - } + final String ASSETS_PATH = COMMON_PATH + "assets/"; - static Function validateRestClientGeneration() { + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/restclient"; + final List expectedTestClientApiFile = List.of(ASSETS_PATH + "client/ApiRestClient.java"); - final String CLIENT_TARGET_API = "generated/com/sngular/multifileplugin/restclient/client"; + final List expectedTestClientAuthModelFiles = List.of(ASSETS_PATH + "client/auth/Authentication.java", + ASSETS_PATH + "client/auth/HttpBasicAuth.java"); - final String CLIENT_MODEL_API = "generated/com/sngular/multifileplugin/restclient/client/auth"; + return path -> commonTest(path, expectedTestApiFile, Collections.emptyList(), DEFAULT_TARGET_API, null, + Collections.emptyList(), null) + && commonTest(path, expectedTestClientApiFile, expectedTestClientAuthModelFiles, CLIENT_TARGET_API, + CLIENT_MODEL_API, Collections.emptyList(), null); + } - final String COMMON_PATH = "openapigenerator/testRestClientApiGeneration/"; + static Function validateEnumsGeneration() { - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/enumgeneration"; - List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java" - ); + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/enumgeneration/model"; - List expectedTestClientApiFile = List.of( - ASSETS_PATH + "client/ApiRestClient.java" - ); + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/enumgeneration/model/exception"; - List expectedTestClientAuthModelFiles = List.of( - ASSETS_PATH + "client/auth/Authentication.java", - ASSETS_PATH + "client/auth/HttpBasicAuth.java" - ); + final String COMMON_PATH = "openapigenerator/testApiEnumsGeneration/"; - return path -> - commonTest(path, expectedTestApiFile, Collections.emptyList(), DEFAULT_TARGET_API, null, Collections.emptyList(), null) && - commonTest(path, expectedTestClientApiFile, expectedTestClientAuthModelFiles, CLIENT_TARGET_API, CLIENT_MODEL_API, Collections.emptyList(), null); - } + final String ASSETS_PATH = COMMON_PATH + "assets/"; - static Function validateRestClientWithRequestBodyGeneration() { + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/restclientWithRequestObjects"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiErrorDTO.java", + ASSETS_PATH + "ApiTestDTO.java", ASSETS_PATH + "ApiTestInfoDTO.java" - final String CLIENT_TARGET_API = "generated/com/sngular/multifileplugin/restclientWithRequestObjects/client"; + ); - final String CLIENT_MODEL_API = "generated/com/sngular/multifileplugin/restclientWithRequestObjects/client/auth"; + final List expectedExceptionFiles = List + .of("openapigenerator/testApiEnumsGeneration/assets/ModelClassException.java"); - final String COMMON_PATH = "openapigenerator/testRestClientApiWithRequestObjectGeneration/"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + } - final String ASSETS_PATH = COMMON_PATH + "assets/"; + static Function validateEnumsLombokGeneration() { - List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java" - ); + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/enumlombokgeneration"; - List expectedTestClientApiFile = List.of( - ASSETS_PATH + "client/ApiRestClient.java" - ); + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/enumlombokgeneration/model"; - List expectedTestClientAuthModelFiles = List.of( - ASSETS_PATH + "client/auth/Authentication.java", - ASSETS_PATH + "client/auth/HttpBasicAuth.java" - ); + final String COMMON_PATH = "openapigenerator/testApiEnumsLombokGeneration/"; - return path -> - commonTest(path, expectedTestApiFile, Collections.emptyList(), DEFAULT_TARGET_API, null, Collections.emptyList(), null) && - commonTest(path, expectedTestClientApiFile, expectedTestClientAuthModelFiles, CLIENT_TARGET_API, CLIENT_MODEL_API, Collections.emptyList(), null); - } + final String ASSETS_PATH = COMMON_PATH + "assets/"; - static Function validateEnumsGeneration() { + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/enumgeneration"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiErrorDTO.java", + ASSETS_PATH + "ApiTestDTO.java", ASSETS_PATH + "ApiTestInfoDTO.java" - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/enumgeneration/model"; + ); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/enumgeneration/model/exception"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - final String COMMON_PATH = "openapigenerator/testApiEnumsGeneration/"; + static Function validateExternalRefGeneration() { - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/externalref"; - final List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java"); + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/externalref/model"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiErrorDTO.java", - ASSETS_PATH + "ApiTestDTO.java", - ASSETS_PATH + "ApiTestInfoDTO.java" + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/externalref/model/exception"; - ); + final String COMMON_PATH = "openapigenerator/testExternalRefsGeneration/"; - final List expectedExceptionFiles = List.of( - "openapigenerator/testApiEnumsGeneration/assets/ModelClassException.java"); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - } + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - static Function validateEnumsLombokGeneration() { + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ApiTestDTO.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/enumlombokgeneration"; + final List expectedExceptionFiles = List.of(ASSETS_PATH + "ModelClassException.java"); - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/enumlombokgeneration/model"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + } - final String COMMON_PATH = "openapigenerator/testApiEnumsLombokGeneration/"; + static Function validateAnyOfInResponse() { - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testanyofinresponse"; - final List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java"); + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testanyofinresponse/model"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiErrorDTO.java", - ASSETS_PATH + "ApiTestDTO.java", - ASSETS_PATH + "ApiTestInfoDTO.java" + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testanyofinresponse/model/exception"; - ); + final String COMMON_PATH = "openapigenerator/testAnyOfInResponse/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); - } + final String ASSETS_PATH = COMMON_PATH + "assets/"; - static Function validateExternalRefGeneration() { + final List expectedTestApiFile = List.of(ASSETS_PATH + "GamesApi.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/externalref"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "GameDTO.java", + ASSETS_PATH + "GameInfoDTO.java", ASSETS_PATH + "InlineResponse200ListGamesAnyOfDTO.java" - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/externalref/model"; + ); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/externalref/model/exception"; + final List expectedExceptionFiles = List.of(ASSETS_PATH + "ModelClassException.java"); - final String COMMON_PATH = "openapigenerator/testExternalRefsGeneration/"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + } - final String ASSETS_PATH = COMMON_PATH + "assets/"; + static Function validateAdditionalProperties() { - final List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java"); + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testadditionalproperties"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ApiTestDTO.java" - ); + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testadditionalproperties/model"; - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "ModelClassException.java"); + final String COMMON_PATH = "openapigenerator/testAdditionalProperties/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - } + final String ASSETS_PATH = COMMON_PATH + "assets/"; - static Function validateAnyOfInResponse() { + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testanyofinresponse"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "TestDTO.java"); - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testanyofinresponse/model"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testanyofinresponse/model/exception"; + static Function validateAdditionalPropertiesFalse() { - final String COMMON_PATH = "openapigenerator/testAnyOfInResponse/"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesfalse"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesfalse/model"; - final List expectedTestApiFile = List.of( - ASSETS_PATH + "GamesApi.java"); + final String COMMON_PATH = "openapigenerator/testAdditionalPropertiesFalse/"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "GameDTO.java", - ASSETS_PATH + "GameInfoDTO.java", - ASSETS_PATH + "InlineResponse200ListGamesAnyOfDTO.java" + final String ASSETS_PATH = COMMON_PATH + "assets/"; - ); + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "ModelClassException.java"); + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "TestDTO.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - } + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - static Function validateAdditionalProperties() { + static Function validateAdditionalPropertiesWithSchema() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testadditionalproperties"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesWithSchema"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testadditionalproperties/model"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesWithSchema/model"; - final String COMMON_PATH = "openapigenerator/testAdditionalProperties/"; + final String COMMON_PATH = "openapigenerator/testAdditionalPropertiesWithSchema/"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "TestDTO.java"); + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "SubtestDTO.java", + ASSETS_PATH + "TestDTO.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); - } + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - static Function validateAdditionalPropertiesWithSchema() { + static Function validateAdditionalPropertiesWithUnnamedObject() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesWithSchema"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesWithUnnamedObject"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesWithSchema/model"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesWithUnnamedObject/model"; - final String COMMON_PATH = "openapigenerator/testAdditionalPropertiesWithSchema/"; + final String COMMON_PATH = "openapigenerator/testAdditionalPropertiesWithUnnamedObject/"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "SubtestDTO.java", - ASSETS_PATH + "TestDTO.java" - ); + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "ArraySchemaDTO.java", + ASSETS_PATH + "EnumSchemaDTO.java", ASSETS_PATH + "SecondTestDTO.java", ASSETS_PATH + "TestDTO.java", + ASSETS_PATH + "TestValueDTO.java", ASSETS_PATH + "TestValueValueDTO.java", + ASSETS_PATH + "ThirdTestDTO.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); - } + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - static Function validateAdditionalPropertiesWithUnnamedObject() { + static Function validateCoconutSchema() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesWithUnnamedObject"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testCoconutSchema"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testadditionalpropertiesWithUnnamedObject/model"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testCoconutSchema/model"; - final String COMMON_PATH = "openapigenerator/testAdditionalPropertiesWithUnnamedObject/"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testCoconutSchema/model/exception"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String COMMON_PATH = "openapigenerator/testCoconutSchema/"; - final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "ArraySchemaDTO.java", - ASSETS_PATH + "EnumSchemaDTO.java", - ASSETS_PATH + "SecondTestDTO.java", - ASSETS_PATH + "TestDTO.java", - ASSETS_PATH + "TestValueDTO.java", - ASSETS_PATH + "TestValueValueDTO.java", - ASSETS_PATH + "ThirdTestDTO.java" - ); + final List expectedTestApiFile = List.of(ASSETS_PATH + "SchemaApi.java", + ASSETS_PATH + "SchemaMasterApi.java", ASSETS_PATH + "SchemasApi.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); - } + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "model/ArrayFieldDTO.java", + ASSETS_PATH + "model/BooleanFieldDTO.java", ASSETS_PATH + "model/DateFieldDTO.java", + ASSETS_PATH + "model/EnumFieldDTO.java", ASSETS_PATH + "model/FieldDTO.java", + ASSETS_PATH + "model/MapFieldDTO.java", ASSETS_PATH + "model/NumberFieldDTO.java", + ASSETS_PATH + "model/ObjectFieldDTO.java", ASSETS_PATH + "model/SchemaDTO.java", + ASSETS_PATH + "model/SequenceFieldDTO.java", ASSETS_PATH + "model/StringFieldDTO.java", + ASSETS_PATH + "model/UnionFieldDTO.java"); - static Function validateCoconutSchema() { + final List expectedExceptionFiles = List.of(ASSETS_PATH + "exception/ModelClassException.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testCoconutSchema"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + } - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testCoconutSchema/model"; + static Function validateRestrictionsSchema() { - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testCoconutSchema/model/exception"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testRestrictionsSchema"; - final String COMMON_PATH = "openapigenerator/testCoconutSchema/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testRestrictionsSchema/model"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testRestrictionsSchema/model/exception"; - final List expectedTestApiFile = List.of( - ASSETS_PATH + "SchemaApi.java", - ASSETS_PATH + "SchemaMasterApi.java", - ASSETS_PATH + "SchemasApi.java" - ); + final String COMMON_PATH = "openapigenerator/testRestrictionsSchema/"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "model/ArrayFieldDTO.java", - ASSETS_PATH + "model/BooleanFieldDTO.java", - ASSETS_PATH + "model/DateFieldDTO.java", - ASSETS_PATH + "model/EnumFieldDTO.java", - ASSETS_PATH + "model/FieldDTO.java", - ASSETS_PATH + "model/MapFieldDTO.java", - ASSETS_PATH + "model/NumberFieldDTO.java", - ASSETS_PATH + "model/ObjectFieldDTO.java", - ASSETS_PATH + "model/SchemaDTO.java", - ASSETS_PATH + "model/SequenceFieldDTO.java", - ASSETS_PATH + "model/StringFieldDTO.java", - ASSETS_PATH + "model/UnionFieldDTO.java" - ); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "exception/ModelClassException.java"); + final List expectedTestApiFile = List.of(ASSETS_PATH + "SchemaApi.java", + ASSETS_PATH + "SchemaMasterApi.java", ASSETS_PATH + "SchemasApi.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - } + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "model/ArrayFieldDTO.java", + ASSETS_PATH + "model/BooleanFieldDTO.java", ASSETS_PATH + "model/DateFieldDTO.java", + ASSETS_PATH + "model/EnumFieldDTO.java", ASSETS_PATH + "model/FieldDTO.java", + ASSETS_PATH + "model/FieldValueDTO.java", ASSETS_PATH + "model/MapFieldDTO.java", + ASSETS_PATH + "model/NumberFieldDTO.java", ASSETS_PATH + "model/ObjectFieldDTO.java", + ASSETS_PATH + "model/SchemaDTO.java", ASSETS_PATH + "model/SequenceFieldDTO.java", + ASSETS_PATH + "model/StringFieldDTO.java", ASSETS_PATH + "model/UUIDFieldDTO.java", + ASSETS_PATH + "model/UnionFieldDTO.java"); - static Function validateRestrictionsSchema() { + final List expectedExceptionFiles = List.of(ASSETS_PATH + "exception/ModelClassException.java"); - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testRestrictionsSchema"; + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); + } - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testRestrictionsSchema/model"; + static Function validateSimpleBuild() { - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testRestrictionsSchema/model/exception"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testsimplebuild"; - final String COMMON_PATH = "openapigenerator/testRestrictionsSchema/"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testsimplebuild/model"; - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final String COMMON_PATH = "openapigenerator/testSimpleBuild/"; - final List expectedTestApiFile = List.of( - ASSETS_PATH + "SchemaApi.java", - ASSETS_PATH + "SchemaMasterApi.java", - ASSETS_PATH + "SchemasApi.java" - ); + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "model/ArrayFieldDTO.java", - ASSETS_PATH + "model/BooleanFieldDTO.java", - ASSETS_PATH + "model/DateFieldDTO.java", - ASSETS_PATH + "model/EnumFieldDTO.java", - ASSETS_PATH + "model/FieldDTO.java", - ASSETS_PATH + "model/FieldValueDTO.java", - ASSETS_PATH + "model/MapFieldDTO.java", - ASSETS_PATH + "model/NumberFieldDTO.java", - ASSETS_PATH + "model/ObjectFieldDTO.java", - ASSETS_PATH + "model/SchemaDTO.java", - ASSETS_PATH + "model/SequenceFieldDTO.java", - ASSETS_PATH + "model/StringFieldDTO.java", - ASSETS_PATH + "model/UUIDFieldDTO.java", - ASSETS_PATH + "model/UnionFieldDTO.java" - ); + final List expectedTestApiFile = List.of(ASSETS_PATH + "V1Api.java"); - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "exception/ModelClassException.java"); + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "model/ActivatePolicyDTO.java", + ASSETS_PATH + "model/AddressDTO.java", ASSETS_PATH + "model/CompanyDTO.java", + ASSETS_PATH + "model/ContactDTO.java", ASSETS_PATH + "model/CreditLimitDTO.java", + ASSETS_PATH + "model/DocumentDTO.java", ASSETS_PATH + "model/ErrorResponseDTO.java", + ASSETS_PATH + "model/InsuredCreditObjectDTO.java", ASSETS_PATH + "model/PolicyActivationDTO.java", + ASSETS_PATH + "model/PolicyClaimDTO.java", ASSETS_PATH + "model/PolicySettlementDTO.java", + ASSETS_PATH + "model/QuoteRequestDTO.java", ASSETS_PATH + "model/QuoteResponseDTO.java", + ASSETS_PATH + "model/QuoteUpdateResponseDTO.java", ASSETS_PATH + "model/UpdateQuoteDTO.java"); - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API); - } + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - static Function validateSimpleBuild() { + static Function validateDataMultipartGeneration() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testsimplebuild"; + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testformdatamultipartgeneration"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testsimplebuild/model"; + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testformdatamultipartgeneration/model"; - final String COMMON_PATH = "openapigenerator/testSimpleBuild/"; - - final String ASSETS_PATH = COMMON_PATH + "assets/"; - - final List expectedTestApiFile = List.of( - ASSETS_PATH + "V1Api.java" - ); - - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "model/ActivatePolicyDTO.java", - ASSETS_PATH + "model/AddressDTO.java", - ASSETS_PATH + "model/CompanyDTO.java", - ASSETS_PATH + "model/ContactDTO.java", - ASSETS_PATH + "model/CreditLimitDTO.java", - ASSETS_PATH + "model/DocumentDTO.java", - ASSETS_PATH + "model/ErrorResponseDTO.java", - ASSETS_PATH + "model/InsuredCreditObjectDTO.java", - ASSETS_PATH + "model/PolicyActivationDTO.java", - ASSETS_PATH + "model/PolicyClaimDTO.java", - ASSETS_PATH + "model/PolicySettlementDTO.java", - ASSETS_PATH + "model/QuoteRequestDTO.java", - ASSETS_PATH + "model/QuoteResponseDTO.java", - ASSETS_PATH + "model/QuoteUpdateResponseDTO.java", - ASSETS_PATH + "model/UpdateQuoteDTO.java" - ); + final String COMMON_PATH = "openapigenerator/testFormDataMultipartGeneration/"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); - } - - static Function validateDataMultipartGeneration() { - - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testformdatamultipartgeneration"; - - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testformdatamultipartgeneration/model"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final String COMMON_PATH = "openapigenerator/testFormDataMultipartGeneration/"; + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final List expectedTestApiModelFiles = Collections.emptyList(); - final List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - final List expectedTestApiModelFiles = Collections.emptyList(); + static Function validateValidationAnnotations(int springBootVersion) { - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); - } + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testapi"; - static Function validateValidationAnnotations(int springBootVersion) { + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testapi/model"; - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testapi"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testapi/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testapi/model"; + final String COMMON_PATH = "openapigenerator/testValidationAnnotations/"; - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testapi/model/exception"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final String COMMON_PATH = "openapigenerator/testValidationAnnotations/"; + final String CUSTOM_VALIDATOR_PATH = COMMON_PATH + "customvalidator/" + + calculateJavaEEPackage(springBootVersion); - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final List expectedTestApiFile = List + .of(ASSETS_PATH + "testApi/" + calculateJavaEEPackage(springBootVersion) + "TestApi.java"); - final String CUSTOM_VALIDATOR_PATH = COMMON_PATH + "customvalidator/" + calculateJavaEEPackage(springBootVersion); + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "testApi/ApiErrorDTO.java", + ASSETS_PATH + "testApi/ApiTestAllOfDTO.java", ASSETS_PATH + "testApi/ApiTestDTO.java", + ASSETS_PATH + "testApi/ApiTestInfoDTO.java" - final List expectedTestApiFile = List.of( - ASSETS_PATH + "testApi/" + calculateJavaEEPackage(springBootVersion) + "TestApi.java"); + ); - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "testApi/ApiErrorDTO.java", - ASSETS_PATH + "testApi/ApiTestAllOfDTO.java", - ASSETS_PATH + "testApi/ApiTestDTO.java", - ASSETS_PATH + "testApi/ApiTestInfoDTO.java" + final List expectedExceptionFiles = List.of(ASSETS_PATH + "ModelClassException.java"); - ); + final List expectedValidatorFiles = List.of(CUSTOM_VALIDATOR_PATH + "MaxBigDecimal.java", + CUSTOM_VALIDATOR_PATH + "MaxBigDecimalValidator.java", CUSTOM_VALIDATOR_PATH + "MaxDouble.java", + CUSTOM_VALIDATOR_PATH + "MaxDoubleValidator.java", CUSTOM_VALIDATOR_PATH + "MaxFloat.java", + CUSTOM_VALIDATOR_PATH + "MaxFloatValidator.java", CUSTOM_VALIDATOR_PATH + "MaxInteger.java", + CUSTOM_VALIDATOR_PATH + "MaxIntegerValidator.java", CUSTOM_VALIDATOR_PATH + "MaxItems.java", + CUSTOM_VALIDATOR_PATH + "MaxItemsValidator.java", CUSTOM_VALIDATOR_PATH + "MinBigDecimal.java", + CUSTOM_VALIDATOR_PATH + "MinBigDecimalValidator.java", CUSTOM_VALIDATOR_PATH + "MinDouble.java", + CUSTOM_VALIDATOR_PATH + "MinDoubleValidator.java", CUSTOM_VALIDATOR_PATH + "MinFloat.java", + CUSTOM_VALIDATOR_PATH + "MinFloatValidator.java", CUSTOM_VALIDATOR_PATH + "MinInteger.java", + CUSTOM_VALIDATOR_PATH + "MinIntegerValidator.java", CUSTOM_VALIDATOR_PATH + "MinItems.java", + CUSTOM_VALIDATOR_PATH + "MinItemsValidator.java", CUSTOM_VALIDATOR_PATH + "MultipleOf.java", + CUSTOM_VALIDATOR_PATH + "MultipleOfValidator.java", CUSTOM_VALIDATOR_PATH + "NotNull.java", + CUSTOM_VALIDATOR_PATH + "NotNullValidator.java", CUSTOM_VALIDATOR_PATH + "Pattern.java", + CUSTOM_VALIDATOR_PATH + "PatternValidator.java", CUSTOM_VALIDATOR_PATH + "Size.java", + CUSTOM_VALIDATOR_PATH + "SizeValidator.java", CUSTOM_VALIDATOR_PATH + "UniqueItems.java", + CUSTOM_VALIDATOR_PATH + "UniqueItemsValidator.java"); - final List expectedExceptionFiles = List.of( - ASSETS_PATH + "ModelClassException.java"); + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API) + && customValidatorTest(path, expectedValidatorFiles); + } - final List expectedValidatorFiles = List.of( - CUSTOM_VALIDATOR_PATH + "MaxBigDecimal.java", - CUSTOM_VALIDATOR_PATH + "MaxBigDecimalValidator.java", - CUSTOM_VALIDATOR_PATH + "MaxDouble.java", - CUSTOM_VALIDATOR_PATH + "MaxDoubleValidator.java", - CUSTOM_VALIDATOR_PATH + "MaxFloat.java", - CUSTOM_VALIDATOR_PATH + "MaxFloatValidator.java", - CUSTOM_VALIDATOR_PATH + "MaxInteger.java", - CUSTOM_VALIDATOR_PATH + "MaxIntegerValidator.java", - CUSTOM_VALIDATOR_PATH + "MaxItems.java", - CUSTOM_VALIDATOR_PATH + "MaxItemsValidator.java", - CUSTOM_VALIDATOR_PATH + "MinBigDecimal.java", - CUSTOM_VALIDATOR_PATH + "MinBigDecimalValidator.java", - CUSTOM_VALIDATOR_PATH + "MinDouble.java", - CUSTOM_VALIDATOR_PATH + "MinDoubleValidator.java", - CUSTOM_VALIDATOR_PATH + "MinFloat.java", - CUSTOM_VALIDATOR_PATH + "MinFloatValidator.java", - CUSTOM_VALIDATOR_PATH + "MinInteger.java", - CUSTOM_VALIDATOR_PATH + "MinIntegerValidator.java", - CUSTOM_VALIDATOR_PATH + "MinItems.java", - CUSTOM_VALIDATOR_PATH + "MinItemsValidator.java", - CUSTOM_VALIDATOR_PATH + "MultipleOf.java", - CUSTOM_VALIDATOR_PATH + "MultipleOfValidator.java", - CUSTOM_VALIDATOR_PATH + "NotNull.java", - CUSTOM_VALIDATOR_PATH + "NotNullValidator.java", - CUSTOM_VALIDATOR_PATH + "Pattern.java", - CUSTOM_VALIDATOR_PATH + "PatternValidator.java", - CUSTOM_VALIDATOR_PATH + "Size.java", - CUSTOM_VALIDATOR_PATH + "SizeValidator.java", - CUSTOM_VALIDATOR_PATH + "UniqueItems.java", - CUSTOM_VALIDATOR_PATH + "UniqueItemsValidator.java" - ); + static Function validateValidationAnnotationsLombok(int springBootTest) { - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, expectedExceptionFiles, DEFAULT_EXCEPTION_API) - && customValidatorTest(path, expectedValidatorFiles); - } + final String DEFAULT_LOMBOK_TARGET_API = "generated/com/sngular/multifileplugin/lombok/testapi"; - static Function validateValidationAnnotationsLombok(int springBootTest) { + final String DEFAULT_LOMBOK_MODEL_API = "generated/com/sngular/multifileplugin/lombok/testapi/model"; - final String DEFAULT_LOMBOK_TARGET_API = "generated/com/sngular/multifileplugin/lombok/testapi"; + final String COMMON_PATH = "openapigenerator/testValidationAnnotations/"; - final String DEFAULT_LOMBOK_MODEL_API = "generated/com/sngular/multifileplugin/lombok/testapi/model"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final String COMMON_PATH = "openapigenerator/testValidationAnnotations/"; + final List expectedTestApiFile = List + .of(ASSETS_PATH + "lombok/" + calculateJavaEEPackage(springBootTest) + "TestApi.java"); - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "lombok/ApiErrorDTO.java", + ASSETS_PATH + "lombok/ApiTestAllOfDTO.java", ASSETS_PATH + "lombok/ApiTestDTO.java", + ASSETS_PATH + "lombok/ApiTestInfoDTO.java" - List expectedTestApiFile = List.of( - ASSETS_PATH + "lombok/" + calculateJavaEEPackage(springBootTest) + "TestApi.java"); + ); - List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "lombok/ApiErrorDTO.java", - ASSETS_PATH + "lombok/ApiTestAllOfDTO.java", - ASSETS_PATH + "lombok/ApiTestDTO.java", - ASSETS_PATH + "lombok/ApiTestInfoDTO.java" + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_LOMBOK_TARGET_API, + DEFAULT_LOMBOK_MODEL_API, Collections.emptyList(), null); + } - ); + static Function validateCreateDTO() { - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_LOMBOK_TARGET_API, DEFAULT_LOMBOK_MODEL_API, Collections.emptyList(), null); - } + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testCreateDTO"; - static Function validateCreateDTO() { + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testCreateDTO/model"; - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testCreateDTO"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testCreateDTO/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testCreateDTO/model"; + final String COMMON_PATH = "openapigenerator/testCreateDTO/"; - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testCreateDTO/model/exception"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final String COMMON_PATH = "openapigenerator/testCreateDTO/"; + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "model/AddressDTO.java", + ASSETS_PATH + "model/PropertiesDTO.java", ASSETS_PATH + "model/TestDTO.java"); - final List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "model/AddressDTO.java", - ASSETS_PATH + "model/PropertiesDTO.java", - ASSETS_PATH + "model/TestDTO.java" - ); + static Function validateCreateDTOWithEnum() { - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testCreateDTOWithEnum"; - static Function validateCreateDTOWithEnum() { + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testCreateDTOWithEnum/model"; - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testCreateDTOWithEnum"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testCreateDTOWithEnum/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testCreateDTOWithEnum/model"; + final String COMMON_PATH = "openapigenerator/testCreateDTOWithEnum/"; - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testCreateDTOWithEnum/model/exception"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final String COMMON_PATH = "openapigenerator/testCreateDTOWithEnum/"; + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "model/AddressDTO.java", + ASSETS_PATH + "model/TestDTO.java"); - final List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "model/AddressDTO.java", - ASSETS_PATH + "model/TestDTO.java" - ); + static Function validateCreateBasicDTO() { - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testCreateBasicDTO"; - static Function validateCreateBasicDTO() { + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testCreateBasicDTO/model"; - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testCreateBasicDTO"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testCreateBasicDTO/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testCreateBasicDTO/model"; + final String COMMON_PATH = "openapigenerator/testCreateBasicDTO/"; - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testCreateBasicDTO/model/exception"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final String COMMON_PATH = "openapigenerator/testCreateBasicDTO/"; + final List expectedTestApiFile = List.of(ASSETS_PATH + "TestApi.java"); - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "model/AddressDTO.java", + ASSETS_PATH + "model/TestDTO.java"); - final List expectedTestApiFile = List.of( - ASSETS_PATH + "TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "model/AddressDTO.java", - ASSETS_PATH + "model/TestDTO.java" - ); + static Function validateIssueFaker() { - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testissuefaker"; - static Function validateIssueFaker() { + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testissuefaker/model"; - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testissuefaker"; + final String COMMON_PATH = "openapigenerator/testIssueFaker/"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testissuefaker/model"; + final String ASSETS_PATH = COMMON_PATH + "assets/"; - final String COMMON_PATH = "openapigenerator/testIssueFaker/"; + final List expectedTestApiFile = List.of(ASSETS_PATH + "FakerApi.java"); - final String ASSETS_PATH = COMMON_PATH + "assets/"; + final List expectedTestApiModelFiles = List.of(ASSETS_PATH + "model/ConfigurationDTO.java", + ASSETS_PATH + "model/FakerFieldDTO.java", ASSETS_PATH + "model/FakerSchemaDTO.java", + ASSETS_PATH + "model/FieldDTO.java", ASSETS_PATH + "model/SchemaDTO.java"); - final List expectedTestApiFile = List.of( - ASSETS_PATH + "FakerApi.java" - ); + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), null); + } - final List expectedTestApiModelFiles = List.of( - ASSETS_PATH + "model/ConfigurationDTO.java", - ASSETS_PATH + "model/FakerFieldDTO.java", - ASSETS_PATH + "model/FakerSchemaDTO.java", - ASSETS_PATH + "model/FieldDTO.java", - ASSETS_PATH + "model/SchemaDTO.java" - ); + static Function validateDateTime() { + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testDateTime"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), null); - } + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testDateTime/model"; - static Function validateDateTime() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testDateTime"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testDateTime/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testDateTime/model"; + final List expectedTestApiFile = List.of("openapigenerator/testDateTime/assets/TestApi.java"); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testDateTime/model/exception"; + final List expectedTestApiModelFiles = List + .of("openapigenerator/testDateTime/assets/model/TestDateDTO.java"); - final List expectedTestApiFile = List.of( - "openapigenerator/testDateTime/assets/TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - "openapigenerator/testDateTime/assets/model/TestDateDTO.java" - ); + static Function validateDateTimeZoned() { + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testDateTimeZoned"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testDateTimeZoned/model"; - static Function validateDateTimeZoned() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testDateTimeZoned"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testDateTimeZoned/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testDateTimeZoned/model"; + final List expectedTestApiFile = List.of("openapigenerator/testDateTimeZoned/assets/TestApi.java"); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testDateTimeZoned/model/exception"; + final List expectedTestApiModelFiles = List + .of("openapigenerator/testDateTimeZoned/assets/model/TestDateDTO.java"); - final List expectedTestApiFile = List.of( - "openapigenerator/testDateTimeZoned/assets/TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - "openapigenerator/testDateTimeZoned/assets/model/TestDateDTO.java" - ); + static Function validateDateTimeOffset() { + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testDateTimeOffset"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testDateTimeOffset/model"; - static Function validateDateTimeOffset() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testDateTimeOffset"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testDateTimeOffset/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testDateTimeOffset/model"; + final List expectedTestApiFile = List.of("openapigenerator/testDateTimeOffset/assets/TestApi.java"); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testDateTimeOffset/model/exception"; + final List expectedTestApiModelFiles = List + .of("openapigenerator/testDateTimeOffset/assets/model/TestDateDTO.java"); - final List expectedTestApiFile = List.of( - "openapigenerator/testDateTimeOffset/assets/TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - "openapigenerator/testDateTimeOffset/assets/model/TestDateDTO.java" - ); + static Function validateListString() { + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testListString"; - return path -> commonTest(path, expectedTestApiFile, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testListString/model"; - static Function validateListString() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testListString"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testListString/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testListString/model"; + final List expectedTestApiFiles = List.of("openapigenerator/testListString/assets/TestApi.java", + "openapigenerator/testListString/assets/TestInlineApi.java"); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testListString/model/exception"; + final List expectedTestApiModelFiles = List.of(); - final List expectedTestApiFiles = List.of( - "openapigenerator/testListString/assets/TestApi.java", - "openapigenerator/testListString/assets/TestInlineApi.java" - ); + return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - ); + static Function validateReferenceFile() { + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testReferenceFile"; - return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testReferenceFile/model"; - static Function validateReferenceFile() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testReferenceFile"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testReferenceFile/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testReferenceFile/model"; + final List expectedTestApiFiles = List.of("openapigenerator/testReferenceFile/assets/TestApi.java"); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testReferenceFile/model/exception"; + final List expectedTestApiModelFiles = List + .of("openapigenerator/testReferenceFile/assets/TestDTO.java"); - final List expectedTestApiFiles = List.of( - "openapigenerator/testReferenceFile/assets/TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - "openapigenerator/testReferenceFile/assets/TestDTO.java" - ); + static Function validateReferenceFileNoComponents() { + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testreferencefilenocomponents"; - return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testreferencefilenocomponents/model"; - static Function validateReferenceFileNoComponents() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testreferencefilenocomponents"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testreferencefilenocomponents/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testreferencefilenocomponents/model"; + final List expectedTestApiFiles = List + .of("openapigenerator/testReferenceFileNoComponents/assets/TestApi.java"); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testreferencefilenocomponents/model/exception"; + final List expectedTestApiModelFiles = List + .of("openapigenerator/testReferenceFileNoComponents/assets/InlineResponse200TestFileDTO.java"); - final List expectedTestApiFiles = List.of( - "openapigenerator/testReferenceFileNoComponents/assets/TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - "openapigenerator/testReferenceFileNoComponents/assets/InlineResponse200TestFileDTO.java" - ); + static Function validateQueryParam() { + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testQueryParam"; - return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testQueryParam/model"; - static Function validateQueryParam() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testQueryParam"; + final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testQueryParam/model/exception"; - final String DEFAULT_MODEL_API = "generated/com/sngular/multifileplugin/testQueryParam/model"; + final List expectedTestApiFiles = List.of("openapigenerator/testQueryParam/assets/TestApi.java"); - final String DEFAULT_EXCEPTION_API = "generated/com/sngular/multifileplugin/testQueryParam/model/exception"; + final List expectedTestApiModelFiles = List.of(); - final List expectedTestApiFiles = List.of( - "openapigenerator/testQueryParam/assets/TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, + DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); + } - final List expectedTestApiModelFiles = List.of( - ); + static Function validateApiWithNoComponents() { + final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testApiWithNoComponents"; - return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, DEFAULT_MODEL_API, Collections.emptyList(), DEFAULT_EXCEPTION_API); - } + final List expectedTestApiFiles = List + .of("openapigenerator/testApiWithNoComponents/assets/TestApi.java"); - static Function validateApiWithNoComponents() { - final String DEFAULT_TARGET_API = "generated/com/sngular/multifileplugin/testApiWithNoComponents"; + final List expectedTestApiModelFiles = List.of(); - final List expectedTestApiFiles = List.of( - "openapigenerator/testApiWithNoComponents/assets/TestApi.java" - ); + return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, null, + Collections.emptyList(), null); - final List expectedTestApiModelFiles = List.of( - ); + } - return path -> commonTest(path, expectedTestApiFiles, expectedTestApiModelFiles, DEFAULT_TARGET_API, null, Collections.emptyList(), null); + private static Boolean commonTest(final Path resultPath, final List expectedFile, + final List expectedModelFiles, final String targetApi, final String targetModel, + final List expectedExceptionFiles, final String targetException) { + Boolean result = Boolean.TRUE; + try { + final Path pathToTarget = Path.of(resultPath.toString(), "target"); + final Path pathToTargetApi = pathToTarget.resolve(targetApi); - } + final File targetApiFolder = pathToTargetApi.toFile(); + assertThat(targetApiFolder).isNotEmptyDirectory(); + TestUtils.validateFiles(expectedFile, targetApiFolder); - private static Boolean commonTest( - final Path resultPath, final List expectedFile, final List expectedModelFiles, final String targetApi, final String targetModel, - final List expectedExceptionFiles, final String targetException) { - Boolean result = Boolean.TRUE; - try { - Path pathToTarget = Path.of(resultPath.toString(), "target"); - Path pathToTargetApi = pathToTarget.resolve(targetApi); + if (!expectedModelFiles.isEmpty()) { + final Path pathToTargetModel = pathToTarget.resolve(targetModel); + final File targetModelFolder = pathToTargetModel.toFile(); + assertThat(targetModelFolder).isNotEmptyDirectory(); + TestUtils.validateFiles(expectedModelFiles, targetModelFolder); + } - File targetApiFolder = pathToTargetApi.toFile(); - assertThat(targetApiFolder).isNotEmptyDirectory(); - TestUtils.validateFiles(expectedFile, targetApiFolder); + if (CollectionUtils.isNotEmpty(expectedExceptionFiles)) { + final Path pathToTargetException = pathToTarget.resolve(targetException); + final File targetModelException = pathToTargetException.toFile(); + assertThat(targetModelException).isNotEmptyDirectory(); + TestUtils.validateFiles(expectedExceptionFiles, targetModelException); + } + } catch (final URISyntaxException | NullPointerException e) { + result = Boolean.FALSE; + log.error(e.getLocalizedMessage()); + } + return result; + } - if (!expectedModelFiles.isEmpty()) { - Path pathToTargetModel = pathToTarget.resolve(targetModel); - File targetModelFolder = pathToTargetModel.toFile(); - assertThat(targetModelFolder).isNotEmptyDirectory(); - TestUtils.validateFiles(expectedModelFiles, targetModelFolder); - } + private static Boolean customValidatorTest(final Path resultPath, final List expectedValidatorFiles) { + Boolean result = Boolean.TRUE; + try { + final Path pathToTarget = Path.of(resultPath.toString(), "target"); - if (CollectionUtils.isNotEmpty(expectedExceptionFiles)) { - Path pathToTargetException = pathToTarget.resolve(targetException); - File targetModelException = pathToTargetException.toFile(); - assertThat(targetModelException).isNotEmptyDirectory(); - TestUtils.validateFiles(expectedExceptionFiles, targetModelException); - } - } catch (URISyntaxException | NullPointerException e) { - result = Boolean.FALSE; - log.error(e.getLocalizedMessage()); - } - return result; - } - - private static Boolean customValidatorTest(final Path resultPath, final List expectedValidatorFiles) { - Boolean result = Boolean.TRUE; - try { - final Path pathToTarget = Path.of(resultPath.toString(), "target"); - - if (!expectedValidatorFiles.isEmpty()) { - final Path pathToTargetCustomValidator = pathToTarget.resolve("generated/com/sngular/multifileplugin/testapi/model/customvalidator"); - final File targetCustomValidatorFolder = pathToTargetCustomValidator.toFile(); - assertThat(targetCustomValidatorFolder).isNotEmptyDirectory(); - TestUtils.validateFiles(expectedValidatorFiles, targetCustomValidatorFolder); - } - } catch (URISyntaxException | NullPointerException e) { - result = Boolean.FALSE; - log.error(e.getLocalizedMessage()); - } - return result; - } - - private static String calculateJavaEEPackage(int springBootVersion) { - if (3 <= springBootVersion) { - return "jakarta/"; - } else { - return "javax/"; - } - } + if (!expectedValidatorFiles.isEmpty()) { + final Path pathToTargetCustomValidator = pathToTarget + .resolve("generated/com/sngular/multifileplugin/testapi/model/customvalidator"); + final File targetCustomValidatorFolder = pathToTargetCustomValidator.toFile(); + assertThat(targetCustomValidatorFolder).isNotEmptyDirectory(); + TestUtils.validateFiles(expectedValidatorFiles, targetCustomValidatorFolder); + } + } catch (final URISyntaxException | NullPointerException e) { + result = Boolean.FALSE; + log.error(e.getLocalizedMessage()); + } + return result; + } + + private static String calculateJavaEEPackage(int springBootVersion) { + if (3 <= springBootVersion) { + return "jakarta/"; + } else { + return "javax/"; + } + } } diff --git a/multiapi-engine/src/test/java/com/sngular/api/generator/plugin/openapi/OpenApiGeneratorTest.java b/multiapi-engine/src/test/java/com/sngular/api/generator/plugin/openapi/OpenApiGeneratorTest.java index a8db5cf0..2a750813 100644 --- a/multiapi-engine/src/test/java/com/sngular/api/generator/plugin/openapi/OpenApiGeneratorTest.java +++ b/multiapi-engine/src/test/java/com/sngular/api/generator/plugin/openapi/OpenApiGeneratorTest.java @@ -89,6 +89,8 @@ static Stream fileSpecToProcess() { OpenApiGeneratorFixtures.validateOneOfInResponse()), Arguments.of("testAdditionalProperties", OpenApiGeneratorFixtures.TEST_ADDITIONAL_PROPERTIES, OpenApiGeneratorFixtures.validateAdditionalProperties()), + Arguments.of("testAdditionalPropertiesFalse", OpenApiGeneratorFixtures.TEST_ADDITIONAL_PROPERTIES_FALSE, + OpenApiGeneratorFixtures.validateAdditionalPropertiesFalse()), Arguments.of("testAdditionalPropertiesWithSchema", OpenApiGeneratorFixtures.TEST_ADDITIONAL_PROPERTIES_WITH_SCHEMA, OpenApiGeneratorFixtures.validateAdditionalPropertiesWithSchema()), Arguments.of("testAdditionalPropertiesWithUnnamedObject", OpenApiGeneratorFixtures.TEST_ADDITIONAL_PROPERTIES_WITH_UNNAMED_OBJECT, diff --git a/multiapi-engine/src/test/resources/openapigenerator/testAdditionalPropertiesFalse/api-test.yml b/multiapi-engine/src/test/resources/openapigenerator/testAdditionalPropertiesFalse/api-test.yml new file mode 100644 index 00000000..cb8b822f --- /dev/null +++ b/multiapi-engine/src/test/resources/openapigenerator/testAdditionalPropertiesFalse/api-test.yml @@ -0,0 +1,42 @@ +--- +openapi: "3.0.0" +info: + contact: + name: Os3 Team + email: os3-info@sngular.com + version: 1.0.0 + title: Testing example file + license: + name: MIT + description: Testing example file +servers: +- url: http://localhost:8080/v1 +tags: +- name: testAdditionalProperties + description: Test service +paths: + /test: + summary: testAdditionalProperties + get: + summary: testAdditionalProperties + description: Test File for SCC MultiApi Plugin. + tags: + - test + operationId: testAdditionalProperties + responses: + '200': + description: An object with additional properties + content: + application/json: + schema: + $ref: '#/components/schemas/test' +components: + schemas: + test: + type: object + required: + - id + properties: + id: + type: string + additionalProperties: false \ No newline at end of file diff --git a/multiapi-engine/src/test/resources/openapigenerator/testAdditionalPropertiesFalse/assets/TestApi.java b/multiapi-engine/src/test/resources/openapigenerator/testAdditionalPropertiesFalse/assets/TestApi.java new file mode 100644 index 00000000..aec2bdac --- /dev/null +++ b/multiapi-engine/src/test/resources/openapigenerator/testAdditionalPropertiesFalse/assets/TestApi.java @@ -0,0 +1,46 @@ +package com.sngular.multifileplugin.testadditionalpropertiesfalse; + +import java.util.Optional; +import java.util.List; +import java.util.Map; +import javax.validation.Valid; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import org.springframework.http.MediaType; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.NativeWebRequest; + +import com.sngular.multifileplugin.testadditionalpropertiesfalse.model.TestDTO; + +public interface TestApi { + + /** + * GET /test: testAdditionalProperties + * @return An object with additional properties; (status code 200) + */ + + @Operation( + operationId = "testAdditionalProperties", + summary = "testAdditionalProperties", + tags = {"test"}, + responses = { + @ApiResponse(responseCode = "200", description = "An object with additional properties", content = @Content(mediaType = "application/json", schema = @Schema(implementation = TestDTO.class))) + } + ) + @RequestMapping( + method = RequestMethod.GET, + value = "/test", + produces = {"application/json"} + ) + + default ResponseEntity testAdditionalProperties() { + return new ResponseEntity<>(HttpStatus.NOT_IMPLEMENTED); + } + +} diff --git a/multiapi-engine/src/test/resources/openapigenerator/testAdditionalPropertiesFalse/assets/TestDTO.java b/multiapi-engine/src/test/resources/openapigenerator/testAdditionalPropertiesFalse/assets/TestDTO.java new file mode 100644 index 00000000..ae255ec4 --- /dev/null +++ b/multiapi-engine/src/test/resources/openapigenerator/testAdditionalPropertiesFalse/assets/TestDTO.java @@ -0,0 +1,24 @@ +package com.sngular.multifileplugin.testadditionalpropertiesfalse.model; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Builder; +import lombok.NonNull; +import lombok.Value; +import lombok.extern.jackson.Jacksonized; + +@Value +public class TestDTO { + + @JsonProperty(value ="id") + @NonNull + private String id; + + + @Builder + @Jacksonized + private TestDTO(@NonNull String id) { + this.id = id; + + } + +} diff --git a/scs-multiapi-gradle-plugin/build.gradle b/scs-multiapi-gradle-plugin/build.gradle index ba0e6479..ab429600 100644 --- a/scs-multiapi-gradle-plugin/build.gradle +++ b/scs-multiapi-gradle-plugin/build.gradle @@ -21,7 +21,7 @@ repositories { } group = 'com.sngular' -version = '6.3.0' +version = '6.3.2' def SCSMultiApiPluginGroupId = group def SCSMultiApiPluginVersion = version @@ -31,7 +31,7 @@ dependencies { shadow localGroovy() shadow gradleApi() - implementation 'com.sngular:multiapi-engine:6.3.1' + implementation 'com.sngular:multiapi-engine:6.3.2' testImplementation 'org.assertj:assertj-core:3.24.2' testImplementation 'com.puppycrawl.tools:checkstyle:10.12.3' testImplementation 'org.junit.platform:junit-platform-launcher:1.9.2' diff --git a/scs-multiapi-maven-plugin/pom.xml b/scs-multiapi-maven-plugin/pom.xml index 75e1695f..eb28326d 100644 --- a/scs-multiapi-maven-plugin/pom.xml +++ b/scs-multiapi-maven-plugin/pom.xml @@ -4,7 +4,7 @@ com.sngular scs-multiapi-maven-plugin - 6.3.1 + 6.3.2 maven-plugin AsyncApi - OpenApi Code Generator Maven Plugin @@ -271,7 +271,7 @@ com.sngular multiapi-engine - 6.3.1 + 6.3.2 org.apache.maven