@@ -714,7 +714,7 @@ public void testMultipartBoot() throws IOException {
714714
715715 // Check that api validates mixed multipart request
716716 JavaFileAssert .assertThat (files .get ("MultipartMixedApi.java" ))
717- .assertMethod ("multipartMixed" , "MultipartMixedStatus" , "MultipartFile" , "MultipartMixedRequestMarker" , "List<MultipartMixedStatus>" )
717+ .assertMethod ("multipartMixed" , "MultipartMixedStatus" , "MultipartFile" , "MultipartMixedRequestMarker" , "List<MultipartMixedRequestMarker>" , "List< MultipartMixedStatus>" )
718718 .assertParameter ("status" ).hasType ("MultipartMixedStatus" )
719719 .assertParameterAnnotations ()
720720 .containsWithName ("Valid" )
@@ -728,10 +728,15 @@ public void testMultipartBoot() throws IOException {
728728 .assertParameter ("marker" ).hasType ("MultipartMixedRequestMarker" )
729729 .assertParameterAnnotations ()
730730 .containsWithNameAndAttributes ("RequestPart" , ImmutableMap .of ("value" , "\" marker\" " , "required" , "false" ))
731+ // markerArray (array of objects — IMPORTANT)
732+ .toParameter ().toMethod ()
733+ .assertParameter ("markerArray" ).hasType ("List<MultipartMixedRequestMarker>" )
734+ .assertParameterAnnotations ()
735+ .containsWithNameAndAttributes ("RequestPart" , ImmutableMap .of ("value" , "\" markerArray\" " , "required" , "false" ))
731736 .toParameter ().toMethod ()
732737 .assertParameter ("statusArray" ).hasType ("List<MultipartMixedStatus>" )
733738 .assertParameterAnnotations ()
734- .containsWithNameAndAttributes ("RequestPart " , ImmutableMap .of ("value" , "\" statusArray\" " , "required" , "false" ));
739+ .containsWithNameAndAttributes ("RequestParam " , ImmutableMap .of ("value" , "\" statusArray\" " , "required" , "false" ));
735740 }
736741
737742 @ Test
@@ -774,12 +779,12 @@ public void testReactiveMultipartBoot() throws IOException {
774779
775780 // Check that api validates mixed multipart request
776781 JavaFileAssert .assertThat (files .get ("MultipartMixedApi.java" ))
777- .assertMethod ("multipartMixed" , "MultipartMixedStatus" , "Part" , "MultipartMixedRequestMarker" , "List<MultipartMixedStatus>" , "ServerWebExchange" )
782+ .assertMethod ("multipartMixed" , "MultipartMixedStatus" , "Part" , "MultipartMixedRequestMarker" , "List<MultipartMixedRequestMarker>" , "List< MultipartMixedStatus>" , "ServerWebExchange" )
778783 .assertParameter ("status" ).hasType ("MultipartMixedStatus" )
779784 .assertParameterAnnotations ()
780785 .containsWithName ("Valid" )
781786 .containsWithNameAndAttributes ("ApiParam" , ImmutableMap .of ("value" , "\" \" " ))
782- .containsWithNameAndAttributes ("RequestPart " , ImmutableMap .of ("value" , "\" status\" " , "required" , "true" ))
787+ .containsWithNameAndAttributes ("RequestParam " , ImmutableMap .of ("value" , "\" status\" " , "required" , "true" ))
783788 .toParameter ().toMethod ()
784789 .assertParameter ("file" ).hasType ("Part" )
785790 .assertParameterAnnotations ()
@@ -789,9 +794,14 @@ public void testReactiveMultipartBoot() throws IOException {
789794 .assertParameterAnnotations ()
790795 .containsWithNameAndAttributes ("RequestPart" , ImmutableMap .of ("value" , "\" marker\" " , "required" , "false" ))
791796 .toParameter ().toMethod ()
797+ // markerArray (array of objects — IMPORTANT)
798+ .assertParameter ("markerArray" ).hasType ("List<MultipartMixedRequestMarker>" )
799+ .assertParameterAnnotations ()
800+ .containsWithNameAndAttributes ("RequestPart" , ImmutableMap .of ("value" , "\" markerArray\" " , "required" , "false" ))
801+ .toParameter ().toMethod ()
792802 .assertParameter ("statusArray" ).hasType ("List<MultipartMixedStatus>" )
793803 .assertParameterAnnotations ()
794- .containsWithNameAndAttributes ("RequestPart " , ImmutableMap .of ("value" , "\" statusArray\" " , "required" , "false" ));
804+ .containsWithNameAndAttributes ("RequestParam " , ImmutableMap .of ("value" , "\" statusArray\" " , "required" , "false" ));
795805 }
796806
797807 @ Test
@@ -4890,7 +4900,7 @@ public void testSSEOperationSupport() throws Exception {
48904900 }
48914901
48924902 @ Test
4893- public void givenMultipartForm_whenGenerateReactiveServer_thenParameterAreCreatedAsRequestPart () throws IOException {
4903+ public void givenMultipartForm_whenGenerateReactiveServer_thenParameterAreCreatedAsRequestParam () throws IOException {
48944904 File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
48954905 output .deleteOnExit ();
48964906 String outputPath = output .getAbsolutePath ().replace ('\\' , '/' );
@@ -4913,9 +4923,9 @@ public void givenMultipartForm_whenGenerateReactiveServer_thenParameterAreCreate
49134923 generator .setGeneratorPropertyDefault (CodegenConstants .APIS , "true" );
49144924
49154925 generator .opts (input ).generate ();
4916-
4926+ // Only file or object types would use @RequestPart
49174927 assertFileContains (Paths .get (outputPath + "/src/main/java/org/openapitools/api/PetApi.java" ),
4918- "@Valid @RequestPart (value = \" additionalMetadata\" , required = false) String additionalMetadata" );
4928+ "@Valid @RequestParam (value = \" additionalMetadata\" , required = false) String additionalMetadata" );
49194929 }
49204930
49214931 @ Test
0 commit comments