@@ -1088,4 +1088,48 @@ public void testCustomMethodParamsAreCamelizedWhenUsingFeign() throws IOExceptio
10881088
10891089 output .deleteOnExit ();
10901090 }
1091+
1092+ /**
1093+ * See https://github.com/OpenAPITools/openapi-generator/issues/6715
1094+ */
1095+ @ Test
1096+ public void testWebClientWithUseAbstractionForFiles () throws IOException {
1097+
1098+ Map <String , Object > properties = new HashMap <>();
1099+ properties .put (JavaClientCodegen .JAVA8_MODE , true );
1100+ properties .put (CodegenConstants .API_PACKAGE , "xyz.abcdef.api" );
1101+ properties .put (JavaClientCodegen .USE_ABSTRACTION_FOR_FILES , true );
1102+
1103+
1104+ File output = Files .createTempDirectory ("test" ).toFile ();
1105+ output .deleteOnExit ();
1106+
1107+ final CodegenConfigurator configurator = new CodegenConfigurator ()
1108+ .setGeneratorName ("java" )
1109+ .setLibrary (JavaClientCodegen .WEBCLIENT )
1110+ .setAdditionalProperties (properties )
1111+ .setInputSpec ("src/test/resources/3_0/form-multipart-binary-array.yaml" )
1112+ .setOutputDir (output .getAbsolutePath ().replace ("\\ " , "/" ));
1113+
1114+
1115+ DefaultGenerator generator = new DefaultGenerator ();
1116+ List <File > files = generator .opts (configurator .toClientOptInput ()).generate ();
1117+ files .forEach (File ::deleteOnExit );
1118+
1119+
1120+ Path defaultApi = Paths .get (output + "/src/main/java/xyz/abcdef/api/MultipartApi.java" );
1121+ TestUtils .assertFileContains (defaultApi ,
1122+ //multiple files
1123+ "multipartArray(java.util.Collection<org.springframework.core.io.AbstractResource> files)" ,
1124+ "formParams.addAll(\" files\" , files.stream().collect(Collectors.toList()));" ,
1125+
1126+ //mixed
1127+ "multipartMixed(org.springframework.core.io.AbstractResource file, MultipartMixedMarker marker)" ,
1128+ "formParams.add(\" file\" , file);" ,
1129+
1130+ //single file
1131+ "multipartSingle(org.springframework.core.io.AbstractResource file)" ,
1132+ "formParams.add(\" file\" , file);"
1133+ );
1134+ }
10911135}
0 commit comments