@@ -2643,6 +2643,129 @@ public void testRestTemplateWithGeneratedClientAsBeanEnabled() throws IOExceptio
26432643 TestUtils .assertFileContains (petApi , "@Component" );
26442644 }
26452645
2646+ @ Test
2647+ public void testRestTemplateWithUseBeanValidationEnabled () throws IOException {
2648+
2649+ Map <String , Object > properties = new HashMap <>();
2650+ properties .put (CodegenConstants .API_PACKAGE , "xyz.abcdef.api" );
2651+ properties .put (JavaClientCodegen .USE_BEANVALIDATION , true );
2652+
2653+ File output = Files .createTempDirectory ("test" ).toFile ();
2654+ output .deleteOnExit ();
2655+
2656+ final CodegenConfigurator configurator = new CodegenConfigurator ()
2657+ .setGeneratorName ("java" )
2658+ .setLibrary (JavaClientCodegen .RESTTEMPLATE )
2659+ .setAdditionalProperties (properties )
2660+ .setInputSpec ("src/test/resources/3_0/petstore.yaml" )
2661+ .setOutputDir (output .getAbsolutePath ().replace ("\\ " , "/" ));
2662+
2663+
2664+ DefaultGenerator generator = new DefaultGenerator ();
2665+ List <File > files = generator .opts (configurator .toClientOptInput ()).generate ();
2666+ files .forEach (File ::deleteOnExit );
2667+
2668+ validateJavaSourceFiles (files );
2669+
2670+ Path pomFile = Paths .get (output + "/pom.xml" );
2671+ TestUtils .assertFileContains (pomFile , "<artifactId>jakarta.validation-api</artifactId>" );
2672+
2673+ Path petModel = Paths .get (output + "/src/main/java/org/openapitools/client/model/Pet.java" );
2674+ TestUtils .assertFileContains (petModel , "@Valid" );
2675+ }
2676+
2677+ @ Test
2678+ public void testRestTemplateWithUseBeanValidationDisabled () throws IOException {
2679+
2680+ Map <String , Object > properties = new HashMap <>();
2681+ properties .put (CodegenConstants .API_PACKAGE , "xyz.abcdef.api" );
2682+ properties .put (JavaClientCodegen .USE_BEANVALIDATION , false );
2683+
2684+ File output = Files .createTempDirectory ("test" ).toFile ();
2685+ output .deleteOnExit ();
2686+
2687+ final CodegenConfigurator configurator = new CodegenConfigurator ()
2688+ .setGeneratorName ("java" )
2689+ .setLibrary (JavaClientCodegen .RESTTEMPLATE )
2690+ .setAdditionalProperties (properties )
2691+ .setInputSpec ("src/test/resources/3_0/petstore.yaml" )
2692+ .setOutputDir (output .getAbsolutePath ().replace ("\\ " , "/" ));
2693+
2694+
2695+ DefaultGenerator generator = new DefaultGenerator ();
2696+ List <File > files = generator .opts (configurator .toClientOptInput ()).generate ();
2697+ files .forEach (File ::deleteOnExit );
2698+
2699+ validateJavaSourceFiles (files );
2700+
2701+ Path pomFile = Paths .get (output + "/pom.xml" );
2702+ TestUtils .assertFileNotContains (pomFile , "<artifactId>jakarta.validation-api</artifactId>" );
2703+
2704+ Path petModel = Paths .get (output + "/src/main/java/org/openapitools/client/model/Pet.java" );
2705+ TestUtils .assertFileNotContains (petModel , "@Valid" );
2706+ }
2707+
2708+ @ Test
2709+ public void testRestTemplateWithPerformBeanValidationEnabled () throws IOException {
2710+
2711+ Map <String , Object > properties = new HashMap <>();
2712+ properties .put (CodegenConstants .API_PACKAGE , "xyz.abcdef.api" );
2713+ properties .put (JavaClientCodegen .PERFORM_BEANVALIDATION , true );
2714+
2715+ File output = Files .createTempDirectory ("test" ).toFile ();
2716+ output .deleteOnExit ();
2717+
2718+ final CodegenConfigurator configurator = new CodegenConfigurator ()
2719+ .setGeneratorName ("java" )
2720+ .setLibrary (JavaClientCodegen .RESTTEMPLATE )
2721+ .setAdditionalProperties (properties )
2722+ .setInputSpec ("src/test/resources/3_0/petstore.yaml" )
2723+ .setOutputDir (output .getAbsolutePath ().replace ("\\ " , "/" ));
2724+
2725+ DefaultGenerator generator = new DefaultGenerator ();
2726+ List <File > files = generator .opts (configurator .toClientOptInput ()).generate ();
2727+ files .forEach (File ::deleteOnExit );
2728+
2729+ validateJavaSourceFiles (files );
2730+
2731+ Path pomFile = Paths .get (output + "/pom.xml" );
2732+ TestUtils .assertFileContains (pomFile , "<artifactId>hibernate-validator</artifactId>" );
2733+
2734+ Path petApi = Paths .get (output + "/src/main/java/xyz/abcdef/BeanValidationException.java" );
2735+ TestUtils .assertFileExists (petApi );
2736+ }
2737+
2738+ @ Test
2739+ public void testRestTemplateWithPerformBeanValidationDisabled () throws IOException {
2740+
2741+ Map <String , Object > properties = new HashMap <>();
2742+ properties .put (CodegenConstants .API_PACKAGE , "xyz.abcdef.api" );
2743+ properties .put (JavaClientCodegen .PERFORM_BEANVALIDATION , false );
2744+
2745+ File output = Files .createTempDirectory ("test" ).toFile ();
2746+ output .deleteOnExit ();
2747+
2748+ final CodegenConfigurator configurator = new CodegenConfigurator ()
2749+ .setGeneratorName ("java" )
2750+ .setLibrary (JavaClientCodegen .RESTTEMPLATE )
2751+ .setAdditionalProperties (properties )
2752+ .setInputSpec ("src/test/resources/3_0/petstore.yaml" )
2753+ .setOutputDir (output .getAbsolutePath ().replace ("\\ " , "/" ));
2754+
2755+ DefaultGenerator generator = new DefaultGenerator ();
2756+ List <File > files = generator .opts (configurator .toClientOptInput ()).generate ();
2757+ files .forEach (File ::deleteOnExit );
2758+
2759+ validateJavaSourceFiles (files );
2760+
2761+ Path pomFile = Paths .get (output + "/pom.xml" );
2762+ TestUtils .assertFileNotContains (pomFile , "<artifactId>hibernate-validator</artifactId>" );
2763+
2764+ Path petApi = Paths .get (output + "/src/main/java/org/openapitools/client/invoker/BeanValidationException.java" );
2765+ TestUtils .assertFileNotExists (petApi );
2766+ }
2767+
2768+
26462769 @ Test
26472770 public void testLogicToAvoidStackOverflow () throws IOException {
26482771 Map <String , Object > properties = new HashMap <>();
0 commit comments