@@ -2877,11 +2877,12 @@ public void shouldUseTheSameTagNameForTheInterfaceAndTheMethod_issue11570() thro
28772877 }
28782878
28792879 @ Test
2880- public void shouldGenerateConstructorWithOnlyRequiredParameters () throws IOException {
2880+ public void shouldGenerateConstructorWithOnlyRequiredParametersAndNoArgConstructorWithOpenApiNullable () throws IOException {
28812881 final Map <String , File > output = generateFromContract (
28822882 "src/test/resources/3_0/spring/issue_9789.yml" ,
28832883 SPRING_BOOT ,
2884- Map .of (GENERATE_CONSTRUCTOR_WITH_ALL_ARGS , "false" )
2884+ Map .of (GENERATE_CONSTRUCTOR_WITH_ALL_ARGS , "false" ,
2885+ OPENAPI_NULLABLE , "false" )
28852886 );
28862887
28872888 JavaFileAssert .assertThat (output .get ("ObjectWithNoRequiredParameter.java" )).hasNoConstructor ("String" );
@@ -2899,6 +2900,30 @@ public void shouldGenerateConstructorWithOnlyRequiredParameters() throws IOExcep
28992900 .bodyContainsLines ("super(param2, param3)" , "this.param6 = param6" );
29002901 }
29012902
2903+ @ Test
2904+ public void shouldGenerateConstructorWithOnlyRequiredParametersWhenNoOpenapiNullable () throws IOException {
2905+ final Map <String , File > output = generateFromContract (
2906+ "src/test/resources/3_0/spring/issue_9789.yml" ,
2907+ SPRING_BOOT ,
2908+ Map .of (GENERATE_CONSTRUCTOR_WITH_ALL_ARGS , "false" ,
2909+ OPENAPI_NULLABLE , "true" )
2910+ );
2911+
2912+ JavaFileAssert .assertThat (output .get ("ObjectWithNoRequiredParameter.java" )).hasNoConstructor ("String" );
2913+
2914+ JavaFileAssert .assertThat (output .get ("ObjectWithRequiredParameter.java" )).hasNoConstructor ();
2915+ JavaFileAssert .assertThat (output .get ("ObjectWithRequiredParameter.java" )).assertConstructor ("String" , "String" )
2916+ .hasParameter ("param2" ).toConstructor ()
2917+ .hasParameter ("param3" );
2918+
2919+ JavaFileAssert .assertThat (output .get ("ObjectWithInheritedRequiredParameter.java" )).hasNoConstructor ();
2920+ JavaFileAssert .assertThat (output .get ("ObjectWithInheritedRequiredParameter.java" )).assertConstructor ("Integer" , "String" , "String" )
2921+ .hasParameter ("param2" ).toConstructor ()
2922+ .hasParameter ("param3" ).toConstructor ()
2923+ .hasParameter ("param6" ).toConstructor ()
2924+ .bodyContainsLines ("super(param2, param3)" , "this.param6 = param6" );
2925+ }
2926+
29022927 private Map <String , File > generateFromContract (String url , String library ) throws IOException {
29032928 return generateFromContract (url , library , new HashMap <>());
29042929 }
@@ -4958,6 +4983,7 @@ public void testLombokAnnotations() throws IOException {
49584983 .hasNoMethod ("setName" )
49594984 ;
49604985 additionalProperties .put (AbstractJavaCodegen .ADDITIONAL_MODEL_TYPE_ANNOTATIONS , "@lombok.ToString" );
4986+ additionalProperties .put (AbstractJavaCodegen .OPENAPI_NULLABLE , "false" );
49614987 output = generateFromContract ("src/test/resources/3_0/petstore.yaml" , SPRING_BOOT , additionalProperties );
49624988 JavaFileAssert .assertThat (output .get ("Pet.java" ))
49634989 .assertConstructor ().toFileAssert ()
0 commit comments