@@ -6223,4 +6223,37 @@ public void testExtensionsOnSchema_issue9183() throws IOException {
62236223 ));
62246224 }
62256225
6226+ @ Test
6227+ public void shouldAddNullableImportForArrayTypeModels () throws IOException {
6228+ File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
6229+ output .deleteOnExit ();
6230+
6231+ final OpenAPI openAPI = TestUtils .parseFlattenSpec (
6232+ "src/test/resources/3_0/spring/petstore-with-fake-endpoints-models-for-testing-with-spring-pageable.yaml" );
6233+ final SpringCodegen codegen = new SpringCodegen ();
6234+ codegen .setOpenAPI (openAPI );
6235+ codegen .setOutputDir (output .getAbsolutePath ());
6236+ codegen .additionalProperties ().put (INTERFACE_ONLY , "true" );
6237+ codegen .additionalProperties ().put (CodegenConstants .GENERATE_ALIAS_AS_MODEL , "true" );
6238+
6239+ ClientOptInput input = new ClientOptInput ();
6240+ input .openAPI (openAPI );
6241+ input .config (codegen );
6242+
6243+ DefaultGenerator generator = new DefaultGenerator ();
6244+ generator .setGenerateMetadata (false );
6245+ generator .setGeneratorPropertyDefault (CodegenConstants .MODELS , "true" );
6246+ generator .setGeneratorPropertyDefault (CodegenConstants .MODEL_TESTS , "false" );
6247+ generator .setGeneratorPropertyDefault (CodegenConstants .MODEL_DOCS , "false" );
6248+
6249+ Map <String , File > files = generator .opts (input ).generate ().stream ()
6250+ .collect (Collectors .toMap (File ::getName , Function .identity ()));
6251+
6252+ // AnimalFarm is an array-type model with no properties (issue #22788)
6253+ JavaFileAssert .assertThat (files .get ("AnimalFarm.java" ))
6254+ .hasImports ("org.springframework.lang.Nullable" );
6255+ JavaFileAssert .assertThat (files .get ("Pet.java" ))
6256+ .hasImports ("org.springframework.lang.Nullable" );
6257+ }
6258+
62266259}
0 commit comments